From 7ca627589f1c5a89cc97b4434a1eb5c7f5690c8f Mon Sep 17 00:00:00 2001 From: Tres Seaver Date: Fri, 6 Sep 2024 12:00:19 -0400 Subject: [PATCH] fix: more expliit weakref clearance --- src/zope/interface/_zope_interface_coptimizations.c | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/zope/interface/_zope_interface_coptimizations.c b/src/zope/interface/_zope_interface_coptimizations.c index 8340141a..1046b665 100644 --- a/src/zope/interface/_zope_interface_coptimizations.c +++ b/src/zope/interface/_zope_interface_coptimizations.c @@ -467,6 +467,7 @@ static void OSD_dealloc(PyObject* self) { PyObject_GC_UnTrack(self); + PyObject_ClearWeakRefs(OBJECT(self)); PyTypeObject *tp = Py_TYPE(self); tp->tp_free(OBJECT(self)); Py_DECREF(tp); @@ -1123,6 +1124,7 @@ static void LB_dealloc(LB* self) { PyObject_GC_UnTrack((PyObject*)self); + PyObject_ClearWeakRefs(OBJECT(self)); PyTypeObject* tp = Py_TYPE(self); LB_clear(self); tp->tp_free((PyObject*)self); @@ -1710,6 +1712,7 @@ static void VB_dealloc(VB* self) { PyObject_GC_UnTrack((PyObject*)self); + PyObject_ClearWeakRefs(OBJECT(self)); PyTypeObject *tp = Py_TYPE(self); VB_clear(self); tp->tp_free((PyObject*)self);