summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJulien Nguyen <julien.nguyen3@gmail.com>2021-06-13 17:40:22 +0200
committerJulien Nguyen <julien.nguyen3@gmail.com>2021-06-13 17:46:03 +0200
commitd6ae7edd80b02571c90c35da0d796d1d7b9381b5 (patch)
treee04bde967d788f0458799cc5b1ee6e4e316d45fd
parent12e0f10c74e9619262f1edcfdc1840432ada0565 (diff)
Fix "super" call when having at least one argument
-rw-r--r--modules/gdscript/gdscript_vm.cpp8
1 files changed, 4 insertions, 4 deletions
diff --git a/modules/gdscript/gdscript_vm.cpp b/modules/gdscript/gdscript_vm.cpp
index 318ec966ae..8a261a88e3 100644
--- a/modules/gdscript/gdscript_vm.cpp
+++ b/modules/gdscript/gdscript_vm.cpp
@@ -1989,7 +1989,10 @@ Variant GDScriptFunction::call(GDScriptInstance *p_instance, const Variant **p_a
ip += instr_arg_count;
- int self_fun = _code_ptr[ip + 1];
+ int argc = _code_ptr[ip + 1];
+ GD_ERR_BREAK(argc < 0);
+
+ int self_fun = _code_ptr[ip + 2];
#ifdef DEBUG_ENABLED
if (self_fun < 0 || self_fun >= _global_names_count) {
err_text = "compiler bug, function name not found";
@@ -1998,9 +2001,6 @@ Variant GDScriptFunction::call(GDScriptInstance *p_instance, const Variant **p_a
#endif
const StringName *methodname = &_global_names_ptr[self_fun];
- int argc = _code_ptr[ip + 2];
- GD_ERR_BREAK(argc < 0);
-
Variant **argptrs = instruction_args;
GET_INSTRUCTION_ARG(dst, argc);