Vladimir Marangozov's long-awaited malloc restructuring.
For more comments, read the patches@python.org archives.
For documentation read the comments in mymalloc.h and objimpl.h.

(This is not exactly what Vladimir posted to the patches list; I've
made a few changes, and Vladimir sent me a fix in private email for a
problem that only occurs in debug mode.  I'm also holding back on his
change to main.c, which seems unnecessary to me.)
diff --git a/Modules/linuxaudiodev.c b/Modules/linuxaudiodev.c
index 393df05..aac742a 100644
--- a/Modules/linuxaudiodev.c
+++ b/Modules/linuxaudiodev.c
@@ -104,7 +104,7 @@
   }
 
   /* Create and initialize the object */
-  if ((xp = PyObject_NEW(lad_t, &Ladtype)) == NULL) {
+  if ((xp = PyObject_New(lad_t, &Ladtype)) == NULL) {
     close(fd);
     return NULL;
   }
@@ -118,7 +118,7 @@
 lad_dealloc(lad_t *xp)
 {
   close(xp->x_fd);
-  PyMem_DEL(xp);
+  PyObject_Del(xp);
 }
 
 static PyObject *