Procházet zdrojové kódy

C#: Fix crash with `DisposablesTracker_OnGodotShuttingDown`

RedworkDE před 2 roky
rodič
revize
d515fcc47a

+ 4 - 0
modules/mono/csharp_script.cpp

@@ -139,6 +139,10 @@ void CSharpLanguage::finalize() {
 		return;
 	}
 
+	if (gdmono && gdmono->is_runtime_initialized() && GDMonoCache::godot_api_cache_updated) {
+		GDMonoCache::managed_callbacks.DisposablesTracker_OnGodotShuttingDown();
+	}
+
 	finalizing = true;
 
 	// Make sure all script binding gchandles are released before finalizing GDMono

+ 0 - 6
modules/mono/mono_gd/gd_mono.cpp

@@ -534,12 +534,6 @@ GDMono::GDMono() {
 GDMono::~GDMono() {
 	finalizing_scripts_domain = true;
 
-	if (is_runtime_initialized()) {
-		if (GDMonoCache::godot_api_cache_updated) {
-			GDMonoCache::managed_callbacks.DisposablesTracker_OnGodotShuttingDown();
-		}
-	}
-
 	if (hostfxr_dll_handle) {
 		OS::get_singleton()->close_dynamic_library(hostfxr_dll_handle);
 	}