GH-98363: Slicing isn't necessary. A size reduction will suffice. (GH-98538)

This commit is contained in:
Raymond Hettinger 2022-10-22 07:21:06 -05:00 committed by GitHub
parent f7f55a5b9e
commit 5871e19942
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23

View file

@ -167,23 +167,22 @@ batched_next(batchedobject *bo)
null_item: null_item:
if (PyErr_Occurred()) { if (PyErr_Occurred()) {
if (PyErr_ExceptionMatches(PyExc_StopIteration)) { if (!PyErr_ExceptionMatches(PyExc_StopIteration)) {
PyErr_Clear(); /* Input raised an exception other than StopIteration */
} else {
/* input raised an exception other than StopIteration */
Py_CLEAR(bo->it); Py_CLEAR(bo->it);
Py_DECREF(result); Py_DECREF(result);
return NULL; return NULL;
} }
PyErr_Clear();
} }
if (i == 0) { if (i == 0) {
Py_CLEAR(bo->it); Py_CLEAR(bo->it);
Py_DECREF(result); Py_DECREF(result);
return NULL; return NULL;
} }
PyObject *short_list = PyList_GetSlice(result, 0, i); /* Elements in result[i:] are still NULL */
Py_DECREF(result); Py_SET_SIZE(result, i);
return short_list; return result;
} }
static PyTypeObject batched_type = { static PyTypeObject batched_type = {