Browse Source

Mono: Do not spam script class not found error
Print this error only when trying to instantiate the script. This way we prevent errors being printed for source files which are not meant to be used as scripts.

Ignacio Etcheverry 7 years ago
parent
commit
f8ce412560
1 changed files with 9 additions and 10 deletions
  1. 9 10
      modules/mono/csharp_script.cpp

+ 9 - 10
modules/mono/csharp_script.cpp

@@ -1954,8 +1954,12 @@ 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) {
 
 
-	if (!valid)
-		return NULL;
+	if (!script_class) {
+		ERR_EXPLAIN("Cannot find class " + name + " for script " + get_path());
+		ERR_FAIL_V(NULL);
+	}
+
+	ERR_FAIL_COND_V(!valid, NULL);
 
 
 	if (!tool && !ScriptServer::is_scripting_enabled()) {
 	if (!tool && !ScriptServer::is_scripting_enabled()) {
 #ifdef TOOLS_ENABLED
 #ifdef TOOLS_ENABLED
@@ -2045,20 +2049,15 @@ Error CSharpScript::reload(bool p_keep_state) {
 	if (project_assembly) {
 	if (project_assembly) {
 		script_class = project_assembly->get_object_derived_class(name);
 		script_class = project_assembly->get_object_derived_class(name);
 
 
-		if (!script_class) {
-			ERR_PRINTS("Cannot find class " + name + " for script " + get_path());
-		}
+		valid = script_class != NULL;
+
+		if (script_class) {
 #ifdef DEBUG_ENABLED
 #ifdef DEBUG_ENABLED
-		else if (OS::get_singleton()->is_stdout_verbose()) {
 			OS::get_singleton()->print(String("Found class " + script_class->get_namespace() + "." +
 			OS::get_singleton()->print(String("Found class " + script_class->get_namespace() + "." +
 											  script_class->get_name() + " for script " + get_path() + "\n")
 											  script_class->get_name() + " for script " + get_path() + "\n")
 											   .utf8());
 											   .utf8());
-		}
 #endif
 #endif
 
 
-		valid = script_class != NULL;
-
-		if (script_class) {
 			tool = script_class->has_attribute(CACHED_CLASS(ToolAttribute));
 			tool = script_class->has_attribute(CACHED_CLASS(ToolAttribute));
 
 
 			native = GDMonoUtils::get_class_native_base(script_class);
 			native = GDMonoUtils::get_class_native_base(script_class);