[Pyrex] Pyrex 0.9: Compiled code produces segmentation fault
Paul Prescod
paul at prescod.net
Mon Feb 2 03:23:15 CET 2004
Greg Ewing wrote:
> ...
> The earliest Python supported by Pyrex is 2.2. If this means that
> some released 2.2 versions don't automatically fill in
> PyObject_GC_Del, then I'll have to change it back.
The bug shows up in 2.2 for sure. Probably 2.2.1, 2.2.2 as well.
What's New in Python 2.2.3c1 ?
Release date: 22-May-2003
============================
- C API: PyType_Ready(): If a type declares that it participates in gc
(Py_TPFLAGS_HAVE_GC), and its base class does not, and its base class's
tp_free slot is the default _PyObject_Del, and type does not define
a tp_free slot itself, _PyObject_GC_Del is assigned to type->tp_free.
Previously _PyObject_Del was inherited, which could at best lead to a
segfault. In addition, if even after this magic the type's tp_free
slot is _PyObject_Del or NULL, and the type is a base type
(Py_TPFLAGS_BASETYPE), TypeError is raised: since the type is a base
type, its dealloc function must call type->tp_free, and since the type
is gc'able, tp_free must not be NULL or _PyObject_Del.
Paul Prescod
More information about the Pyrex
mailing list