From a0f141c0fa13090731634e4710883170bcc718e5 Mon Sep 17 00:00:00 2001 From: Chris Cranford Date: Sat, 3 Aug 2024 12:59:56 -0400 Subject: [PATCH] GH-646 Only reset return value when last return node removed --- src/script/nodes/functions/function_result.cpp | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/src/script/nodes/functions/function_result.cpp b/src/script/nodes/functions/function_result.cpp index dc43389c..2e14626d 100644 --- a/src/script/nodes/functions/function_result.cpp +++ b/src/script/nodes/functions/function_result.cpp @@ -49,10 +49,14 @@ class OScriptNodeFunctionResultInstance : public OScriptNodeInstance void OScriptNodeFunctionResult::pre_remove() { - // When this node is removed, clear the function's return value + // When this node is removed, clear the function's return value if this is the last return node Ref function = get_function(); if (function.is_valid()) - _function->set_has_return_value(false); + { + Vector> return_nodes = function->get_return_nodes(); + if (return_nodes.size() == 1) + _function->set_has_return_value(false); + } } void OScriptNodeFunctionResult::allocate_default_pins()