reverted tp_dealloc() call patch
authorStefan Behnel <stefan_ml@behnel.de>
Sat, 4 Aug 2012 12:33:49 +0000 (14:33 +0200)
committerStefan Behnel <stefan_ml@behnel.de>
Sat, 4 Aug 2012 12:33:49 +0000 (14:33 +0200)
Cython/Compiler/ModuleNode.py

index c0d2343..2472de3 100644 (file)
@@ -1111,11 +1111,7 @@ class ModuleNode(Nodes.Node, Nodes.BlockNode):
         if base_type:
             tp_dealloc = TypeSlots.get_base_slot_function(scope, tp_slot)
             if tp_dealloc is None:
-                # This is an externally defined type.  Calling through the
-                # cimported base type pointer directly interacts badly with
-                # the module cleanup, which may already have cleared it.
-                # Instead, play safe by going through Py_TYPE() again.
-                tp_dealloc = "Py_TYPE(o)->tp_base->tp_dealloc"
+                tp_dealloc = "%s->tp_dealloc" % base_type.typeptr_cname
             code.putln(
                     "%s(o);" % tp_dealloc)
         else: