Browse Source

Mono/C#: Fix assemblies being reloaded a second time unnecesarily

(cherry picked from commit c9882e61e2ccc248ee3728ea936bb42e9d145528)
Ignacio Etcheverry 5 năm trước cách đây
mục cha
commit
dfdb7bdc87
1 tập tin đã thay đổi với 4 bổ sung1 xóa
  1. 4 1
      modules/mono/mono_gd/gd_mono.cpp

+ 4 - 1
modules/mono/mono_gd/gd_mono.cpp

@@ -1386,7 +1386,10 @@ bool _GodotSharp::is_runtime_initialized() {
 
 void _GodotSharp::_reload_assemblies(bool p_soft_reload) {
 #ifdef GD_MONO_HOT_RELOAD
-	CSharpLanguage::get_singleton()->reload_assemblies(p_soft_reload);
+	// This method may be called more than once with `call_deferred`, so we need to check
+	// again if reloading is needed to avoid reloading multiple times unnecessarily.
+	if (CSharpLanguage::get_singleton()->is_assembly_reloading_needed())
+		CSharpLanguage::get_singleton()->reload_assemblies(p_soft_reload);
 #endif
 }