[Python-Dev] Memory management question

Thomas Heller thomas.heller@ion-tof.com
Fri, 27 Apr 2001 09:53:09 +0200


I'm trying to port Don Beaudry's objectmodule to Python 2.0
and encountered the following problem. Here is a part from Don's code:

  co = (MetaClassObject*) PyClass_New(NULL, methods, name);
  co = PyObject_Realloc(co, sizeof (MetaClassObject));

As you see, he is trying to achive cheap code reuse.
This code does not work.

I have tracked it down to the following sample, which does also not
work. In the debug version on windows, the PyObject_REALLOC
fails with an assertion-error: _CrtIsValidHeapPointer(pUserData)

 op = PyObject_NEW(PyClassObject, &PyClass_Type);
 op = PyObject_REALLOC(op, sizeof(PyClassObject) + 20);

Should the above work or am I doing something wrong?

Regards,

Thomas