summaryrefslogtreecommitdiffstats
path: root/modules/gdscript/gdscript_function.cpp
diff options
context:
space:
mode:
authorAdam Scott <ascott.ca@gmail.com>2022-10-09 12:41:28 -0400
committerAdam Scott <ascott.ca@gmail.com>2022-11-18 16:41:31 -0500
commit5704055d30499cc63672d44001760a98abfbfc08 (patch)
tree96c5895a8d8961342208c72d1039e7b5f3aeec05 /modules/gdscript/gdscript_function.cpp
parente8f9cd8ac5cf3e511e02d78a5497d204ca7e8308 (diff)
downloadredot-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.cpp7
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);