/* Macros trading binary compatibility for speed. See also pymem.h.
Note that these macros expect non-NULL object pointers.*/
#define PyObject_INIT(op, typeobj) \
- ((op)->ob_type = (typeobj), _Py_NewReference((PyObject *)(op)), \
- (PyType_SUPPORTS_WEAKREFS((typeobj)) \
- ? *(PyObject_GET_WEAKREFS_LISTPTR(op)) = NULL \
- : NULL), \
- (op))
+ ( (op)->ob_type = (typeobj), _Py_NewReference((PyObject *)(op)), (op) )
#define PyObject_INIT_VAR(op, typeobj, size) \
( (op)->ob_size = (size), PyObject_INIT((op), (typeobj)) )
- Py_BuildValue() now has a "D" conversion to create a Python complex
number from a Py_complex C value.
+- Extensions types which support weak references must now set the
+ field allocated for the weak reference machinery to NULL themselves;
+ this is done to avoid the cost of checking each object for having a
+ weakly referencable type in PyObject_INIT(), since most types are
+ not weakly referencable.
+
Distutils
- the sdist command now writes a PKG-INFO file, as described in PEP 241,