safely clear ext type fields on tp_dealloc()
authorStefan Behnel <stefan_ml@behnel.de>
Sat, 4 Aug 2012 13:39:35 +0000 (15:39 +0200)
committerStefan Behnel <stefan_ml@behnel.de>
Sat, 4 Aug 2012 13:39:35 +0000 (15:39 +0200)
Cython/Compiler/ModuleNode.py

index 2472de3..2ac80ad 100644 (file)
@@ -1102,7 +1102,8 @@ class ModuleNode(Nodes.Node, Nodes.BlockNode):
             code.putln("p->%s.~%s();" % (entry.cname, class_name));
 
         for entry in py_attrs:
-            code.put_xdecref("p->%s" % entry.cname, entry.type, nanny=False)
+            code.put_xdecref_clear("p->%s" % entry.cname, entry.type, nanny=False,
+                                   clear_before_decref=True)
 
         for entry in memoryview_slices:
             code.put_xdecref_memoryviewslice("p->%s" % entry.cname,