[Python-Dev] pymalloc on Windows

Fredrik Lundh fredrik@pythonware.com
Mon, 18 Mar 2002 15:56:51 +0100


guido wrote:

> > > I have patches for both these modules.  However, I wonder if a =
more
> > > pragmatic option is to expose this core function.  It would allow
> > > PyObject_NEW to continue to work as before.
> >
> > That would break lots of code... basically all code using
> > the macros instead of the functions, I guess.
>=20
> Hm, I thought it was explicitly the case that only (the statically
> linked part of) the core would ever use these macros.  So why would
> there be 3rd party code breakage?

because module implementors read the fine manual?

http://www.python.org/doc/current/api/allocating-objects.html

    "TYPE* PyObject_NEW(TYPE, PyTypeObject *type)=20

    "Return value: New reference.=20

    "Macro version of PyObject_New(), to gain performance
    at the expense of safety. This does not check type for
    a NULL value. "

and given that most calls to PyObject_New (at least in our code)
passes in the address of a statically allocated Type object, there's
little reason to use a null-checking version...

(a quick grep indicates that we have about 100 PyObject_NEW for
each call to PyObject_New...)

</F>