浏览代码

fix: dict2inst crash when constructor has arguments

(cherry picked from commit 9f6b20936e504b7d2cdb0a6fe9d7b3c33dd4ea86)
Thakee Nathees 5 年之前
父节点
当前提交
e417528f67
共有 1 个文件被更改,包括 5 次插入0 次删除
  1. 5 0
      modules/gdscript/gdscript_functions.cpp

+ 5 - 0
modules/gdscript/gdscript_functions.cpp

@@ -1207,6 +1207,11 @@ void GDScriptFunctions::call(Function p_func, const Variant **p_args, int p_arg_
 
 
 			r_ret = gdscr->_new(NULL, 0, r_error);
 			r_ret = gdscr->_new(NULL, 0, r_error);
 
 
+			if (r_error.error != Variant::CallError::CALL_OK) {
+				r_ret = Variant();
+				return;
+			}
+
 			GDScriptInstance *ins = static_cast<GDScriptInstance *>(static_cast<Object *>(r_ret)->get_script_instance());
 			GDScriptInstance *ins = static_cast<GDScriptInstance *>(static_cast<Object *>(r_ret)->get_script_instance());
 			Ref<GDScript> gd_ref = ins->get_script();
 			Ref<GDScript> gd_ref = ins->get_script();