diff options
| author | Raul Santos <raulsntos@gmail.com> | 2022-02-07 03:41:44 +0100 | 
|---|---|---|
| committer | Raul Santos <raulsntos@gmail.com> | 2022-02-07 03:43:34 +0100 | 
| commit | 303f0c8626aea2aef21a70a1598f689ee4e16b0d (patch) | |
| tree | d9cb604c6c16ac5c7bfeca28e5a28dc8a5d4f1ad | |
| parent | 8aa4ed8b5b22881661f1355cf90871c4e25c68e2 (diff) | |
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.
| -rw-r--r-- | modules/mono/csharp_script.cpp | 4 | 
1 files changed, 2 insertions, 2 deletions
diff --git a/modules/mono/csharp_script.cpp b/modules/mono/csharp_script.cpp index 26436e3ec0..085ab9a467 100644 --- a/modules/mono/csharp_script.cpp +++ b/modules/mono/csharp_script.cpp @@ -3245,6 +3245,8 @@ ScriptInstance *CSharpScript::instance_create(Object *p_this) {  	CRASH_COND(!valid);  #endif +	GD_MONO_SCOPE_THREAD_ATTACH; +  	if (native) {  		StringName native_name = NATIVE_GDMONOCLASS_NAME(native);  		if (!ClassDB::is_parent_class(p_this->get_class_name(), native_name)) { @@ -3257,8 +3259,6 @@ ScriptInstance *CSharpScript::instance_create(Object *p_this) {  		}  	} -	GD_MONO_SCOPE_THREAD_ATTACH; -  	Callable::CallError unchecked_error;  	return _create_instance(nullptr, 0, p_this, Object::cast_to<RefCounted>(p_this) != nullptr, unchecked_error);  }  |