From a2f9d96439259293b5fe64aba01f9fd825e426cf Mon Sep 17 00:00:00 2001 From: Niklas Date: Mon, 4 Nov 2024 00:07:25 +0100 Subject: [PATCH] Safer fix for memory leak (#81) --- py4godot/core/variant4/type_helpers.pyx | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/py4godot/core/variant4/type_helpers.pyx b/py4godot/core/variant4/type_helpers.pyx index 30dd79c6..3ee0cfea 100644 --- a/py4godot/core/variant4/type_helpers.pyx +++ b/py4godot/core/variant4/type_helpers.pyx @@ -26,9 +26,12 @@ cdef api object type_helper_create_string(shared_ptr[bridge.String]& bridge_stri ##Py_INCREF(val) return val - +cdef Object val = None cdef api object type_helper_create_object(shared_ptr[bridge.Object]& bridge_object): - cdef Object val = Object() + global val + if not val: + val = Object() # Just using object.__new__(Object) crashes. This seems to fix that + val.destroy() # Free object to not run into memory leaks val.Object_internal_class_ptr = bridge_object ##Py_INCREF(val) return val