Fix cyclic references in GDScript 2.0

This commit is contained in:
Adam Scott 2022-10-09 12:41:28 -04:00
parent e8f9cd8ac5
commit 5704055d30
20 changed files with 626 additions and 113 deletions

View file

@ -149,10 +149,17 @@ GDScriptFunction::GDScriptFunction() {
}
GDScriptFunction::~GDScriptFunction() {
get_script()->member_functions.erase(name);
for (int i = 0; i < lambdas.size(); i++) {
memdelete(lambdas[i]);
}
for (int i = 0; i < argument_types.size(); i++) {
argument_types.write[i].script_type_ref = Ref<Script>();
}
return_type.script_type_ref = Ref<Script>();
#ifdef DEBUG_ENABLED
MutexLock lock(GDScriptLanguage::get_singleton()->mutex);