We read every piece of feedback, and take your input very seriously.
To see all available qualifiers, see our documentation.
There was an error while loading. Please reload this page.
1 parent bc96da2 commit 14ad56aCopy full SHA for 14ad56a
mypyc/codegen/emitclass.py
@@ -798,6 +798,13 @@ def generate_dealloc_for_class(
798
emitter.emit_line("static void")
799
emitter.emit_line(f"{dealloc_func_name}({cl.struct_name(emitter.names)} *self)")
800
emitter.emit_line("{")
801
+ if cl.supports_weakref:
802
+ if emitter.capi_version < (3, 12):
803
+ emitter.emit_line("if (self->weakreflist != NULL) {")
804
+ emitter.emit_line("PyObject_ClearWeakRefs((PyObject *) self);")
805
+ emitter.emit_line("}")
806
+ else:
807
808
if has_tp_finalize:
809
emitter.emit_line("if (!PyObject_GC_IsFinalized((PyObject *)self)) {")
810
emitter.emit_line("Py_TYPE(self)->tp_finalize((PyObject *)self);")
0 commit comments