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
path: root/source
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 13:10:41 +0300
commit68e37552099231ff2b1beb6c7135dfa7fcc418e9 (patch)
treeac17a8c53800040886504647933360f7a0f6dab5 /source
parent594656e7a39d3598d7a357511742fb0b001254bc (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. Dalai gave green light to cherry pick this fix for 3.0.
Diffstat (limited to 'source')
-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 8a9386c1137..e2f4ebf17c3 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;
}
}
}