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:
Guido van Rossum 2001-12-03 19:45:06 +00:00
parent bb8f59a371
commit 354797ccad

View file

@ -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;