Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJacques Lucke <jacques@blender.org>2021-12-02 11:41:36 +0300
committerJacques Lucke <jacques@blender.org>2021-12-02 11:41:36 +0300
commit198e571e87eaefb7b7a89afcf5d44cfd24da7b2f (patch)
tree4d102de02e6c2fbd1771c3879df73b25f12070a3
parentf1b0b0ffb8bd2aa87a2bdbea8bdafa2fe2833a43 (diff)
Fix T93555: crash when muting nodes with multiple internal links
The crash happened because I was incorrectly and inconsistently assuming that a socket is part of at most one internal link. However, this is not the case. In geometry nodes, an input socket can be internally linked to multiple output sockets. In the general case, an output could also be linked to multiple input sockets, even though we don't have that in Blender yet.
-rw-r--r--source/blender/nodes/intern/derived_node_tree.cc1
-rw-r--r--source/blender/nodes/intern/node_tree_ref.cc1
2 files changed, 0 insertions, 2 deletions
diff --git a/source/blender/nodes/intern/derived_node_tree.cc b/source/blender/nodes/intern/derived_node_tree.cc
index b47b201cd8c..420b53b62b0 100644
--- a/source/blender/nodes/intern/derived_node_tree.cc
+++ b/source/blender/nodes/intern/derived_node_tree.cc
@@ -281,7 +281,6 @@ void DOutputSocket::foreach_target_socket(ForeachTargetSocketFn target_fn,
mute_output.foreach_target_socket(target_fn, path_info);
path_info.sockets.pop_last();
path_info.sockets.pop_last();
- break;
}
}
else if (linked_node->is_group_output_node()) {
diff --git a/source/blender/nodes/intern/node_tree_ref.cc b/source/blender/nodes/intern/node_tree_ref.cc
index 5481465aef6..d58521e7b72 100644
--- a/source/blender/nodes/intern/node_tree_ref.cc
+++ b/source/blender/nodes/intern/node_tree_ref.cc
@@ -262,7 +262,6 @@ void InputSocketRef::foreach_logical_origin(
skipped_fn.call_safe(origin);
skipped_fn.call_safe(mute_input);
mute_input.foreach_logical_origin(origin_fn, skipped_fn, true, seen_sockets_stack);
- break;
}
}
}