From eddb99b9be919f12c31abe86f67f65274a140625 Mon Sep 17 00:00:00 2001 From: Raul Santos Date: Mon, 7 Feb 2022 03:41:44 +0100 Subject: [PATCH] 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. --- modules/mono/csharp_script.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/modules/mono/csharp_script.cpp b/modules/mono/csharp_script.cpp index 96b72dd3f14..524249b89a0 100644 --- a/modules/mono/csharp_script.cpp +++ b/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(p_this) != NULL, unchecked_error); }