Kaydet (Commit) c572e42f authored tarafından Jack Jansen's avatar Jack Jansen

Call the correct tp_dealloc.

üst 84b74477
...@@ -135,7 +135,7 @@ class ObjectDefinition(GeneratorGroup): ...@@ -135,7 +135,7 @@ class ObjectDefinition(GeneratorGroup):
OutLbrace() OutLbrace()
self.outputCleanupStructMembers() self.outputCleanupStructMembers()
if self.basetype: if self.basetype:
Output("%s.tp_dealloc(self)", self.basetype) Output("self->ob_type->tp_base->tp_dealloc((PyObject *)self);")
elif hasattr(self, 'output_tp_free'): elif hasattr(self, 'output_tp_free'):
# This is a new-style object with tp_free slot # This is a new-style object with tp_free slot
Output("self->ob_type->tp_free((PyObject *)self);") Output("self->ob_type->tp_free((PyObject *)self);")
...@@ -210,7 +210,7 @@ class ObjectDefinition(GeneratorGroup): ...@@ -210,7 +210,7 @@ class ObjectDefinition(GeneratorGroup):
def outputTypeObjectInitializer(self): def outputTypeObjectInitializer(self):
Output("""%s.ob_type = &PyType_Type;""", self.typename) Output("""%s.ob_type = &PyType_Type;""", self.typename)
if self.basetype: if self.basetype:
Output("%s.tp_base = %s;", self.typename, self.basetype) Output("%s.tp_base = &%s;", self.typename, self.basetype)
Output("if (PyType_Ready(&%s) < 0) return;", self.typename) Output("if (PyType_Ready(&%s) < 0) return;", self.typename)
Output("""Py_INCREF(&%s);""", self.typename) Output("""Py_INCREF(&%s);""", self.typename)
Output("PyModule_AddObject(m, \"%s\", (PyObject *)&%s);", self.name, self.typename); Output("PyModule_AddObject(m, \"%s\", (PyObject *)&%s);", self.name, self.typename);
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment