Browse Source

Merge pull request #88048 from raulsntos/dotnet/fix-88022

C#: Fix crash when reloading scripts
Rémi Verschelde 1 year ago
parent
commit
f5b238f111
1 changed files with 7 additions and 18 deletions
  1. 7 18
      modules/mono/csharp_script.cpp

+ 7 - 18
modules/mono/csharp_script.cpp

@@ -727,20 +727,15 @@ void CSharpLanguage::reload_all_scripts() {
 }
 
 void CSharpLanguage::reload_scripts(const Array &p_scripts, bool p_soft_reload) {
-	CRASH_COND(!Engine::get_singleton()->is_editor_hint());
-
-	bool has_csharp_script = false;
-	for (int i = 0; i < p_scripts.size(); ++i) {
-		Ref<CSharpScript> cs_script = p_scripts[i];
-		if (cs_script.is_valid()) {
-			has_csharp_script = true;
-			break;
-		}
+#ifdef GD_MONO_HOT_RELOAD
+	if (is_assembly_reloading_needed()) {
+		reload_assemblies(p_soft_reload);
 	}
+#endif
+}
 
-	if (!has_csharp_script) {
-		return;
-	}
+void CSharpLanguage::reload_tool_script(const Ref<Script> &p_script, bool p_soft_reload) {
+	CRASH_COND(!Engine::get_singleton()->is_editor_hint());
 
 #ifdef TOOLS_ENABLED
 	get_godotsharp_editor()->get_node(NodePath("HotReloadAssemblyWatcher"))->call("RestartTimer");
@@ -753,12 +748,6 @@ void CSharpLanguage::reload_scripts(const Array &p_scripts, bool p_soft_reload)
 #endif
 }
 
-void CSharpLanguage::reload_tool_script(const Ref<Script> &p_script, bool p_soft_reload) {
-	Array scripts;
-	scripts.push_back(p_script);
-	reload_scripts(scripts, p_soft_reload);
-}
-
 #ifdef GD_MONO_HOT_RELOAD
 bool CSharpLanguage::is_assembly_reloading_needed() {
 	ERR_FAIL_NULL_V(gdmono, false);