[Python-Dev] Problem with the memory docs (original) (raw)

Fredrik Lundh fredrik@pythonware.com
Thu, 4 Apr 2002 19:19:46 +0200


tim wrote:

Requesting zero bytes returns a non-NULL pointer. I can't guarantee this without insane effort, and our code has never guaranteed this.

umm. I have to admit that it's rather ugly, but I'm pretty sure the following guarantees that requesting zero bytes will never return a NULL pointer:

static char nullbyte = MAGIC;

void* malloc(int bytes) { if (bytes == 0) { #if DEBUG_MODE if (*nullbyte != MAGIC) uh-oh #endif return &nullbyte; } ...

void free(void* ptr) { if (ptr == &nullbyte) { #if DEBUG_MODE if (nullbyte != MAGIC) uh-oh #endif return; / nothing to do */ } ...