mirror of
https://github.com/python/cpython.git
synced 2025-09-27 10:50:04 +00:00
Issue #18408: Fix list.pop() to handle list_resize() failure (MemoryError).
This commit is contained in:
parent
c9b7f51ec2
commit
b27cd3e5ad
1 changed files with 4 additions and 2 deletions
|
@ -925,8 +925,10 @@ listpop(PyListObject *self, PyObject *args)
|
||||||
v = self->ob_item[i];
|
v = self->ob_item[i];
|
||||||
if (i == Py_SIZE(self) - 1) {
|
if (i == Py_SIZE(self) - 1) {
|
||||||
status = list_resize(self, 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 */
|
return v; /* and v now owns the reference the list had */
|
||||||
|
else
|
||||||
|
return NULL;
|
||||||
}
|
}
|
||||||
Py_INCREF(v);
|
Py_INCREF(v);
|
||||||
status = list_ass_slice(self, i, i+1, (PyObject *)NULL);
|
status = list_ass_slice(self, i, i+1, (PyObject *)NULL);
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue