浏览代码

Merge pull request #46125 from angad-k/fix-object-to-check-script-pointer-validity

Check parameter validity in `Object::set_script`
Rémi Verschelde 2 年之前
父节点
当前提交
7e39c91508
共有 1 个文件被更改,包括 5 次插入3 次删除
  1. 5 3
      core/object/object.cpp

+ 5 - 3
core/object/object.cpp

@@ -836,14 +836,16 @@ void Object::set_script(const Variant &p_script) {
 		return;
 		return;
 	}
 	}
 
 
+	Ref<Script> s = p_script;
+	ERR_FAIL_COND_MSG(s.is_null() && !p_script.is_null(), "Invalid parameter, it should be a reference to a valid script (or null).");
+
+	script = p_script;
+
 	if (script_instance) {
 	if (script_instance) {
 		memdelete(script_instance);
 		memdelete(script_instance);
 		script_instance = nullptr;
 		script_instance = nullptr;
 	}
 	}
 
 
-	script = p_script;
-	Ref<Script> s = script;
-
 	if (!s.is_null()) {
 	if (!s.is_null()) {
 		if (s->can_instantiate()) {
 		if (s->can_instantiate()) {
 			OBJ_DEBUG_LOCK
 			OBJ_DEBUG_LOCK