diff options
author | Poommetee Ketson <poommetee@protonmail.com> | 2017-10-02 23:40:44 +0700 |
---|---|---|
committer | GitHub <noreply@github.com> | 2017-10-02 23:40:44 +0700 |
commit | e8f0817eac919469ef1a97a077b0d6a9cab51bf4 (patch) | |
tree | 00f65c89a0bbcfb5edf7c7c443601ab1e1b64ce3 /modules/visual_script/visual_script_func_nodes.cpp | |
parent | 30c1449289e525fc6390c5a30948f0d15b0b2daf (diff) | |
parent | 57ef77376fc369f3d9bb86278a22ce2a73ace732 (diff) | |
download | redot-engine-e8f0817eac919469ef1a97a077b0d6a9cab51bf4.tar.gz |
Merge pull request #11724 from marcelofg55/visualscript_crashfix
VisualScript crashfix when returns are too few
Diffstat (limited to 'modules/visual_script/visual_script_func_nodes.cpp')
-rw-r--r-- | modules/visual_script/visual_script_func_nodes.cpp | 10 |
1 files changed, 8 insertions, 2 deletions
diff --git a/modules/visual_script/visual_script_func_nodes.cpp b/modules/visual_script/visual_script_func_nodes.cpp index c17265d275..8d73de9889 100644 --- a/modules/visual_script/visual_script_func_nodes.cpp +++ b/modules/visual_script/visual_script_func_nodes.cpp @@ -763,7 +763,7 @@ public: NodePath node_path; int input_args; bool validate; - bool returns; + int returns; VisualScriptFunctionCall::RPCCallMode rpc_mode; StringName function; StringName singleton; @@ -856,7 +856,13 @@ public: } } else if (returns) { if (call_mode == VisualScriptFunctionCall::CALL_MODE_INSTANCE) { - *p_outputs[1] = v.call(function, p_inputs + 1, input_args, r_error); + if (returns >= 2) { + *p_outputs[1] = v.call(function, p_inputs + 1, input_args, r_error); + } else { + r_error.error = Variant::CallError::CALL_ERROR_INVALID_METHOD; + r_error_str = "Invalid returns count for call_mode == CALL_MODE_INSTANCE"; + return 0; + } } else { *p_outputs[0] = v.call(function, p_inputs + 1, input_args, r_error); } |