mirror of
https://github.com/python/cpython.git
synced 2025-08-03 16:39:00 +00:00
Fix the final two issues in Armin Rigo's SF bug #488477: apply_slice()
and assign_slice() weren't properly DECREF'ing the temporary slice object they created. (Shame on me. :-)
This commit is contained in:
parent
bb8f59a371
commit
354797ccad
1 changed files with 10 additions and 4 deletions
|
@ -3398,8 +3398,11 @@ apply_slice(PyObject *u, PyObject *v, PyObject *w) /* return u[v:w] */
|
|||
}
|
||||
else {
|
||||
PyObject *slice = PySlice_New(v, w, NULL);
|
||||
if (slice != NULL)
|
||||
return PyObject_GetItem(u, slice);
|
||||
if (slice != NULL) {
|
||||
PyObject *res = PyObject_GetItem(u, slice);
|
||||
Py_DECREF(slice);
|
||||
return res;
|
||||
}
|
||||
else
|
||||
return NULL;
|
||||
}
|
||||
|
@ -3426,10 +3429,13 @@ assign_slice(PyObject *u, PyObject *v, PyObject *w, PyObject *x)
|
|||
else {
|
||||
PyObject *slice = PySlice_New(v, w, NULL);
|
||||
if (slice != NULL) {
|
||||
int res;
|
||||
if (x != NULL)
|
||||
return PyObject_SetItem(u, slice, x);
|
||||
res = PyObject_SetItem(u, slice, x);
|
||||
else
|
||||
return PyObject_DelItem(u, slice);
|
||||
res = PyObject_DelItem(u, slice);
|
||||
Py_DECREF(slice);
|
||||
return res;
|
||||
}
|
||||
else
|
||||
return -1;
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue