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:
parent
d3352813ea
commit
8ce4a0cf15
|
@ -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);
|
||||||
|
|
Loading…
Reference in New Issue