[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