diff options
author | Adam Scott <ascott.ca@gmail.com> | 2022-10-09 12:41:28 -0400 |
---|---|---|
committer | Adam Scott <ascott.ca@gmail.com> | 2022-11-18 16:41:31 -0500 |
commit | 5704055d30499cc63672d44001760a98abfbfc08 (patch) | |
tree | 96c5895a8d8961342208c72d1039e7b5f3aeec05 /modules/gdscript/gdscript_function.cpp | |
parent | e8f9cd8ac5cf3e511e02d78a5497d204ca7e8308 (diff) | |
download | redot-engine-5704055d30499cc63672d44001760a98abfbfc08.tar.gz |
Fix cyclic references in GDScript 2.0
Diffstat (limited to 'modules/gdscript/gdscript_function.cpp')
-rw-r--r-- | modules/gdscript/gdscript_function.cpp | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/modules/gdscript/gdscript_function.cpp b/modules/gdscript/gdscript_function.cpp index 98b3e40f1b..24a614b1ad 100644 --- a/modules/gdscript/gdscript_function.cpp +++ b/modules/gdscript/gdscript_function.cpp @@ -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); |