Browse Source

Fix '!valid' error spam on C# script instance create

Ignacio Etcheverry 7 years ago
parent
commit
8edf85b09c
1 changed files with 6 additions and 6 deletions
  1. 6 6
      modules/mono/csharp_script.cpp

+ 6 - 6
modules/mono/csharp_script.cpp

@@ -1963,8 +1963,6 @@ Variant CSharpScript::_new(const Variant **p_args, int p_argcount, Variant::Call
 
 
 ScriptInstance *CSharpScript::instance_create(Object *p_this) {
 ScriptInstance *CSharpScript::instance_create(Object *p_this) {
 
 
-	ERR_FAIL_COND_V(!valid, NULL);
-
 	if (!tool && !ScriptServer::is_scripting_enabled()) {
 	if (!tool && !ScriptServer::is_scripting_enabled()) {
 #ifdef TOOLS_ENABLED
 #ifdef TOOLS_ENABLED
 		PlaceHolderScriptInstance *si = memnew(PlaceHolderScriptInstance(CSharpLanguage::get_singleton(), Ref<Script>(this), p_this));
 		PlaceHolderScriptInstance *si = memnew(PlaceHolderScriptInstance(CSharpLanguage::get_singleton(), Ref<Script>(this), p_this));
@@ -1981,13 +1979,15 @@ ScriptInstance *CSharpScript::instance_create(Object *p_this) {
 			// The project assembly is not loaded
 			// The project assembly is not loaded
 			ERR_EXPLAIN("Cannot instance script because the project assembly is not loaded. Script: " + get_path());
 			ERR_EXPLAIN("Cannot instance script because the project assembly is not loaded. Script: " + get_path());
 			ERR_FAIL_V(NULL);
 			ERR_FAIL_V(NULL);
+		} else {
+			// The project assembly is loaded, but the class could not found
+			ERR_EXPLAIN("Cannot instance script because the class '" + name + "' could not be found. Script: " + get_path());
+			ERR_FAIL_V(NULL);
 		}
 		}
-
-		// The project assembly is loaded, but the class could not found
-		ERR_EXPLAIN("Cannot instance script because the class '" + name + "' could not be found. Script: " + get_path());
-		ERR_FAIL_V(NULL);
 	}
 	}
 
 
+	ERR_FAIL_COND_V(!valid, NULL);
+
 	if (native) {
 	if (native) {
 		String native_name = native->get_name();
 		String native_name = native->get_name();
 		if (!ClassDB::is_parent_class(p_this->get_class_name(), native_name)) {
 		if (!ClassDB::is_parent_class(p_this->get_class_name(), native_name)) {