diff options
author | Rémi Verschelde <rverschelde@gmail.com> | 2024-02-07 11:06:46 +0100 |
---|---|---|
committer | Rémi Verschelde <rverschelde@gmail.com> | 2024-02-07 11:06:46 +0100 |
commit | f5b238f111b8d176547339f4ec3e37fbdd1d552e (patch) | |
tree | 5fab8831655fdb9f34c7ea4ef5a25b9a371eabdf /modules/mono/csharp_script.cpp | |
parent | e89807514ea6fff2128615e6799b178de76ee7be (diff) | |
parent | 8ce4a0cf1554f609b6a12f6bf136440aeb7e34bb (diff) | |
download | redot-engine-f5b238f111b8d176547339f4ec3e37fbdd1d552e.tar.gz |
Merge pull request #88048 from raulsntos/dotnet/fix-88022
C#: Fix crash when reloading scripts
Diffstat (limited to 'modules/mono/csharp_script.cpp')
-rw-r--r-- | modules/mono/csharp_script.cpp | 25 |
1 files changed, 7 insertions, 18 deletions
diff --git a/modules/mono/csharp_script.cpp b/modules/mono/csharp_script.cpp index a84febb226..18724ff6e1 100644 --- a/modules/mono/csharp_script.cpp +++ b/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); |