[Bf-blender-cvs] [a827864e6b1] blender-v3.0-release: Fix T89709: avoid double node links after delete and reconnect
Colin
noreply at git.blender.org
Wed Nov 3 17:55:19 CET 2021
Commit: a827864e6b1ee34af759dea61f832076c0e67c44
Author: Colin
Date: Wed Nov 3 17:53:41 2021 +0100
Branches: blender-v3.0-release
https://developer.blender.org/rBa827864e6b1ee34af759dea61f832076c0e67c44
Fix T89709: avoid double node links after delete and reconnect
Differential Revision: https://developer.blender.org/D13062
===================================================================
M source/blender/blenkernel/intern/node.cc
===================================================================
diff --git a/source/blender/blenkernel/intern/node.cc b/source/blender/blenkernel/intern/node.cc
index ae9cddacc85..6b409ae656e 100644
--- a/source/blender/blenkernel/intern/node.cc
+++ b/source/blender/blenkernel/intern/node.cc
@@ -2601,6 +2601,17 @@ void nodeInternalRelink(bNodeTree *ntree, bNode *node)
bNodeLink *fromlink = link->fromsock->link->fromsock->link;
/* skip the node */
if (fromlink) {
+ if (link->tosock->flag & SOCK_MULTI_INPUT) {
+ /* remove the link that would be the same as the relinked one */
+ LISTBASE_FOREACH_MUTABLE (bNodeLink *, link_to_compare, &ntree->links) {
+ if (link_to_compare->fromsock == fromlink->fromsock &&
+ link_to_compare->tosock == link->tosock) {
+ adjust_multi_input_indices_after_removed_link(
+ ntree, link_to_compare->tosock, link_to_compare->multi_input_socket_index);
+ nodeRemLink(ntree, link_to_compare);
+ }
+ }
+ }
link->fromnode = fromlink->fromnode;
link->fromsock = fromlink->fromsock;
More information about the Bf-blender-cvs
mailing list