summaryrefslogtreecommitdiff
path: root/modules
diff options
context:
space:
mode:
authorIgnacio Etcheverry <ignalfonsore@gmail.com>2020-04-23 02:23:25 +0200
committerIgnacio Etcheverry <ignalfonsore@gmail.com>2020-04-23 02:23:25 +0200
commitc9882e61e2ccc248ee3728ea936bb42e9d145528 (patch)
tree301cc474e8bc0bd9459543039d2688328f527a58 /modules
parent28f0b15c9d36b43f9f05a5155ed1c27f7377d599 (diff)
Mono/C#: Fix assemblies being reloaded a second time unnecesarily
Diffstat (limited to 'modules')
-rw-r--r--modules/mono/mono_gd/gd_mono.cpp5
1 files changed, 4 insertions, 1 deletions
diff --git a/modules/mono/mono_gd/gd_mono.cpp b/modules/mono/mono_gd/gd_mono.cpp
index 681bb3e2d8..3298c5da4c 100644
--- a/modules/mono/mono_gd/gd_mono.cpp
+++ b/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
}