diff options
Diffstat (limited to 'Objects')
-rw-r--r-- | Objects/listobject.c | 14 |
1 files changed, 5 insertions, 9 deletions
diff --git a/Objects/listobject.c b/Objects/listobject.c index a18f3d7..3397fbb 100644 --- a/Objects/listobject.c +++ b/Objects/listobject.c @@ -57,15 +57,13 @@ PyList_New(int size) { PyListObject *op; size_t nbytes; - int allocated_size = roundupsize(size); - if (size < 0) { PyErr_BadInternalCall(); return NULL; } - nbytes = allocated_size * sizeof(PyObject *); + nbytes = size * sizeof(PyObject *); /* Check for overflow */ - if (nbytes / sizeof(PyObject *) != (size_t)allocated_size) { + if (nbytes / sizeof(PyObject *) != (size_t)size) { return PyErr_NoMemory(); } op = PyObject_GC_New(PyListObject, &PyList_Type); @@ -80,7 +78,7 @@ PyList_New(int size) if (op->ob_item == NULL) { return PyErr_NoMemory(); } - memset(op->ob_item, 0, sizeof(*op->ob_item) * allocated_size); + memset(op->ob_item, 0, sizeof(*op->ob_item) * size); } op->ob_size = size; _PyObject_GC_TRACK(op); @@ -156,8 +154,7 @@ ins1(PyListObject *self, int where, PyObject *v) return -1; } items = self->ob_item; - if (roundupsize(self->ob_size) - 1 == self->ob_size || items == NULL) - NRESIZE(items, PyObject *, self->ob_size+1); + NRESIZE(items, PyObject *, self->ob_size+1); if (items == NULL) { PyErr_NoMemory(); return -1; @@ -1881,8 +1878,7 @@ listsort(PyListObject *self, PyObject *args, PyObject *kwds) saved_ob_size = self->ob_size; saved_ob_item = self->ob_item; self->ob_size = 0; -/* self->ob_item = empty_ob_item = PyMem_NEW(PyObject *, 0); */ - self->ob_item = empty_ob_item = PyMem_NEW(PyObject *, roundupsize(0)); + self->ob_item = empty_ob_item = PyMem_NEW(PyObject *, 0); if (keyfunc != NULL) { for (i=0 ; i < saved_ob_size ; i++) { |