Browse Source

Attach mono thread before getting nativeName field

In order to access the `nativeName` constant field from a C# class, the
mono scope thread must be attached or the mono domain will be null.
Raul Santos 3 years ago
parent
commit
eddb99b9be
1 changed files with 2 additions and 2 deletions
  1. 2 2
      modules/mono/csharp_script.cpp

+ 2 - 2
modules/mono/csharp_script.cpp

@@ -3032,6 +3032,8 @@ ScriptInstance *CSharpScript::instance_create(Object *p_this) {
 	CRASH_COND(!valid);
 #endif
 
+	GD_MONO_SCOPE_THREAD_ATTACH;
+
 	if (native) {
 		String native_name = NATIVE_GDMONOCLASS_NAME(native);
 		if (!ClassDB::is_parent_class(p_this->get_class_name(), native_name)) {
@@ -3042,8 +3044,6 @@ ScriptInstance *CSharpScript::instance_create(Object *p_this) {
 		}
 	}
 
-	GD_MONO_SCOPE_THREAD_ATTACH;
-
 	Variant::CallError unchecked_error;
 	return _create_instance(NULL, 0, p_this, Object::cast_to<Reference>(p_this) != NULL, unchecked_error);
 }