summaryrefslogtreecommitdiffstats
path: root/modules/visual_script/visual_script_func_nodes.cpp
diff options
context:
space:
mode:
authorPoommetee Ketson <poommetee@protonmail.com>2017-10-02 23:40:44 +0700
committerGitHub <noreply@github.com>2017-10-02 23:40:44 +0700
commite8f0817eac919469ef1a97a077b0d6a9cab51bf4 (patch)
tree00f65c89a0bbcfb5edf7c7c443601ab1e1b64ce3 /modules/visual_script/visual_script_func_nodes.cpp
parent30c1449289e525fc6390c5a30948f0d15b0b2daf (diff)
parent57ef77376fc369f3d9bb86278a22ce2a73ace732 (diff)
downloadredot-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.cpp10
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);
}