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?
Probably this doesn't work because of the GC header. The 'op' pointer does not point to the start of the allocated memory block. PyObject_NEW and friends know about this, but PyObject_REALLOC doesn't. That's what the assertion is trying to tell you.
--Guido van Rossum (home page: http://www.python.org/%7Eguido/)