From afec66c024dc2b75447537d45406c06342ec201e Mon Sep 17 00:00:00 2001 From: Jacques Lucke Date: Wed, 26 May 2021 12:24:56 +0200 Subject: Fix T88588: crash when muting node with multi input socket The bug existed before the new evaluator already, but the new evaluator is more sensitive to this kind of error. --- source/blender/nodes/intern/node_tree_ref.cc | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/source/blender/nodes/intern/node_tree_ref.cc b/source/blender/nodes/intern/node_tree_ref.cc index 5c0bc0b5ebc..8699736e543 100644 --- a/source/blender/nodes/intern/node_tree_ref.cc +++ b/source/blender/nodes/intern/node_tree_ref.cc @@ -297,6 +297,12 @@ void OutputSocketRef::foreach_logical_target( skipped_fn.call_safe(target); for (const InternalLinkRef *internal_link : target_node.internal_links()) { if (&internal_link->from() == &target) { + /* The internal link only forwards the first incoming link. */ + if (target.is_multi_input_socket()) { + if (target.directly_linked_links()[0] != link) { + continue; + } + } const OutputSocketRef &mute_output = internal_link->to(); skipped_fn.call_safe(target); skipped_fn.call_safe(mute_output); -- cgit v1.2.3