Browse Source

Check parameter validity in `Object::set_script`

Fixes #46120.
Angad Kambli 4 years ago
parent
commit
9c6c2f09e0
1 changed files with 5 additions and 3 deletions
  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