瀏覽代碼

Fix "super" call when having at least one argument

Julien Nguyen 4 年之前
父節點
當前提交
d6ae7edd80
共有 1 個文件被更改,包括 4 次插入4 次删除
  1. 4 4
      modules/gdscript/gdscript_vm.cpp

+ 4 - 4
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);