From e4082887fdbe1262d5f08f4bbdbd23f5e5b4ca9b Mon Sep 17 00:00:00 2001 From: frmdstryr Date: Fri, 1 May 2026 08:01:16 -0400 Subject: [PATCH] Update eventbinder --- atom/src/eventbinder.cpp | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/atom/src/eventbinder.cpp b/atom/src/eventbinder.cpp index 33e4eade..36c910af 100644 --- a/atom/src/eventbinder.cpp +++ b/atom/src/eventbinder.cpp @@ -36,10 +36,7 @@ EventBinder_traverse( EventBinder* self, visitproc visit, void* arg ) { Py_VISIT( self->member ); Py_VISIT( self->atom ); -#if PY_VERSION_HEX >= 0x03090000 - // This was not needed before Python 3.9 (Python issue 35810 and 40217) Py_VISIT(Py_TYPE(self)); -#endif return 0; } @@ -52,7 +49,11 @@ EventBinder_dealloc( EventBinder* self ) if( numfree < FREELIST_MAX ) freelist[ numfree++ ] = self; else - Py_TYPE(self)->tp_free( pyobject_cast( self ) ); + { + PyTypeObject* tp = Py_TYPE( self ); + tp->tp_free( pyobject_cast( self ) ); + Py_DECREF( tp ); + } } @@ -168,6 +169,7 @@ EventBinder::New( Member* member, CAtom* atom ) { pybinder = pyobject_cast( freelist[ --numfree ] ); _Py_NewReference( pybinder ); + PyObject_GC_Track( pybinder ); } else {