Browse Source

Issue #18408: Fix list.pop() to handle list_resize() failure (MemoryError).

pull/224/head
Victor Stinner 13 years ago
parent
commit
b27cd3e5ad
  1. 4
      Objects/listobject.c

4
Objects/listobject.c

@ -925,8 +925,10 @@ listpop(PyListObject *self, PyObject *args)
v = self->ob_item[i];
if (i == Py_SIZE(self) - 1) {
status = list_resize(self, Py_SIZE(self) - 1);
assert(status >= 0);
if (status >= 0)
return v; /* and v now owns the reference the list had */
else
return NULL;
}
Py_INCREF(v);
status = list_ass_slice(self, i, i+1, (PyObject *)NULL);

Loading…
Cancel
Save