Mercurial > cpython-lru_cache-weakref
diff Modules/arraymodule.c @ 12576:1c7c2dd1beb1 legacy-trunk
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.)
| author | Guido van Rossum <guido@python.org> |
|---|---|
| date | Wed, 03 May 2000 23:44:39 +0000 |
| parents | 6546ea06e157 |
| children | b1b260a2de98 |
line wrap: on
line diff
--- a/Modules/arraymodule.c Wed May 03 22:34:12 2000 +0000 +++ b/Modules/arraymodule.c Wed May 03 23:44:39 2000 +0000 @@ -346,7 +346,7 @@ if (nbytes / descr->itemsize != (size_t)size) { return PyErr_NoMemory(); } - op = PyMem_NEW(arrayobject, 1); + op = PyObject_NewVar(arrayobject, &Arraytype, size); if (op == NULL) { return PyErr_NoMemory(); } @@ -356,14 +356,11 @@ else { op->ob_item = PyMem_NEW(char, nbytes); if (op->ob_item == NULL) { - PyMem_DEL(op); + PyObject_Del(op); return PyErr_NoMemory(); } } - op->ob_type = &Arraytype; - op->ob_size = size; op->ob_descr = descr; - _Py_NewReference((PyObject *)op); return (PyObject *) op; } @@ -466,7 +463,7 @@ { if (op->ob_item != NULL) PyMem_DEL(op->ob_item); - PyMem_DEL(op); + PyObject_Del(op); } static int
