[Python-Dev] Memory management question
M.-A. Lemburg
mal@lemburg.com
Fri, 27 Apr 2001 11:57:13 +0200
Thomas Heller wrote:
>
> 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?
Wouldn't it be safer to first create a MetaClassObject and then
let the standard ClassObject initialize it ?
--
Marc-Andre Lemburg
______________________________________________________________________
Company & Consulting: http://www.egenix.com/
Python Software: http://www.lemburg.com/python/