فهرست منبع

Merge pull request #38123 from neikeq/fix-hotreload-twice

Mono/C#: Fix assemblies being reloaded a second time unnecesarily
Rémi Verschelde 5 سال پیش
والد
کامیت
8012be867c
1فایلهای تغییر یافته به همراه4 افزوده شده و 1 حذف شده
  1. 4 1
      modules/mono/mono_gd/gd_mono.cpp

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

@@ -1387,7 +1387,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
 }