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/mmapmodule.c b/Modules/mmapmodule.c
index a79812d..fcbb484 100644
--- a/Modules/mmapmodule.c
+++ b/Modules/mmapmodule.c
@@ -69,7 +69,7 @@
 	}
 #endif /* UNIX */
 
-	PyMem_DEL(m_obj);
+	PyObject_Del(m_obj);
 }
 
 static PyObject *
@@ -706,7 +706,7 @@
 		)
 		return NULL;
   
-	m_obj = PyObject_NEW (mmap_object, &mmap_object_type);
+	m_obj = PyObject_New (mmap_object, &mmap_object_type);
 	if (m_obj == NULL) {return NULL;}
 	m_obj->size = (size_t) map_size;
 	m_obj->pos = (size_t) 0;
@@ -757,7 +757,7 @@
 		fseek(&_iob[fileno], 0, SEEK_SET);
 	}
 
-	m_obj = PyObject_NEW (mmap_object, &mmap_object_type);
+	m_obj = PyObject_New (mmap_object, &mmap_object_type);
     
 	if (fh) {
 		m_obj->file_handle = fh;