summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--Objects/listobject.c17
1 files changed, 3 insertions, 14 deletions
diff --git a/Objects/listobject.c b/Objects/listobject.c
index b1f2b59..17c37ba 100644
--- a/Objects/listobject.c
+++ b/Objects/listobject.c
@@ -81,26 +81,15 @@ static int
list_preallocate_exact(PyListObject *self, Py_ssize_t size)
{
assert(self->ob_item == NULL);
+ assert(size > 0);
- PyObject **items;
- size_t allocated;
-
- allocated = (size_t)size;
- if (allocated > (size_t)PY_SSIZE_T_MAX / sizeof(PyObject *)) {
- PyErr_NoMemory();
- return -1;
- }
-
- if (size == 0) {
- allocated = 0;
- }
- items = (PyObject **)PyMem_New(PyObject*, allocated);
+ PyObject **items = PyMem_New(PyObject*, size);
if (items == NULL) {
PyErr_NoMemory();
return -1;
}
self->ob_item = items;
- self->allocated = allocated;
+ self->allocated = size;
return 0;
}