Merge pull request #55679 from raulsntos/script_reload_fix
C# scripts reload in editor fixed
This commit is contained in:
commit
e527687e1e
2 changed files with 8 additions and 5 deletions
|
@ -2995,6 +2995,7 @@ void CSharpScript::initialize_for_managed_type(Ref<CSharpScript> p_script, GDMon
|
||||||
CRASH_COND(p_script->native == nullptr);
|
CRASH_COND(p_script->native == nullptr);
|
||||||
|
|
||||||
p_script->valid = true;
|
p_script->valid = true;
|
||||||
|
p_script->reload_invalidated = false;
|
||||||
|
|
||||||
update_script_class_info(p_script);
|
update_script_class_info(p_script);
|
||||||
|
|
||||||
|
@ -3351,13 +3352,13 @@ MethodInfo CSharpScript::get_method_info(const StringName &p_method) const {
|
||||||
}
|
}
|
||||||
|
|
||||||
Error CSharpScript::reload(bool p_keep_state) {
|
Error CSharpScript::reload(bool p_keep_state) {
|
||||||
bool has_instances;
|
if (!reload_invalidated) {
|
||||||
{
|
return OK;
|
||||||
MutexLock lock(CSharpLanguage::get_singleton()->script_instances_mutex);
|
|
||||||
has_instances = instances.size();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
ERR_FAIL_COND_V(!p_keep_state && has_instances, ERR_ALREADY_IN_USE);
|
// In the case of C#, reload doesn't really do any script reloading.
|
||||||
|
// That's done separately via domain reloading.
|
||||||
|
reload_invalidated = false;
|
||||||
|
|
||||||
GD_MONO_SCOPE_THREAD_ATTACH;
|
GD_MONO_SCOPE_THREAD_ATTACH;
|
||||||
|
|
||||||
|
@ -3544,6 +3545,7 @@ void CSharpScript::_update_name() {
|
||||||
void CSharpScript::_clear() {
|
void CSharpScript::_clear() {
|
||||||
tool = false;
|
tool = false;
|
||||||
valid = false;
|
valid = false;
|
||||||
|
reload_invalidated = true;
|
||||||
|
|
||||||
base = nullptr;
|
base = nullptr;
|
||||||
native = nullptr;
|
native = nullptr;
|
||||||
|
|
|
@ -101,6 +101,7 @@ private:
|
||||||
|
|
||||||
bool tool = false;
|
bool tool = false;
|
||||||
bool valid = false;
|
bool valid = false;
|
||||||
|
bool reload_invalidated = false;
|
||||||
|
|
||||||
bool builtin;
|
bool builtin;
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue