C#: Fix crash when reloading scripts

The crash cond was accidentally moved to the `reload_scripts` method when it was only meant to be in the `reload_tool_script` method. Same about restarting the HotReloadAssemblyWatcher timer.

Also removed the loop that checks if the script array contains a C# script because if we're in CSharpLanguage we can assume that at least one of them is.
This commit is contained in:
Raul Santos 2024-02-07 06:33:51 +01:00
parent d3352813ea
commit 8ce4a0cf15
No known key found for this signature in database
GPG Key ID: B532473AE3A803E4
1 changed files with 8 additions and 19 deletions

View File

@ -727,21 +727,16 @@ void CSharpLanguage::reload_all_scripts() {
} }
void CSharpLanguage::reload_scripts(const Array &p_scripts, bool p_soft_reload) { void CSharpLanguage::reload_scripts(const Array &p_scripts, bool p_soft_reload) {
#ifdef GD_MONO_HOT_RELOAD
if (is_assembly_reloading_needed()) {
reload_assemblies(p_soft_reload);
}
#endif
}
void CSharpLanguage::reload_tool_script(const Ref<Script> &p_script, bool p_soft_reload) {
CRASH_COND(!Engine::get_singleton()->is_editor_hint()); 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;
}
}
if (!has_csharp_script) {
return;
}
#ifdef TOOLS_ENABLED #ifdef TOOLS_ENABLED
get_godotsharp_editor()->get_node(NodePath("HotReloadAssemblyWatcher"))->call("RestartTimer"); get_godotsharp_editor()->get_node(NodePath("HotReloadAssemblyWatcher"))->call("RestartTimer");
#endif #endif
@ -753,12 +748,6 @@ void CSharpLanguage::reload_scripts(const Array &p_scripts, bool p_soft_reload)
#endif #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 #ifdef GD_MONO_HOT_RELOAD
bool CSharpLanguage::is_assembly_reloading_needed() { bool CSharpLanguage::is_assembly_reloading_needed() {
ERR_FAIL_NULL_V(gdmono, false); ERR_FAIL_NULL_V(gdmono, false);