[Python-checkins] GH-98363: Slicing isn't necessary. A size reduction will suffice. (GH-98538)
rhettinger
webhook-mailer at python.org
Sat Oct 22 08:21:14 EDT 2022
https://github.com/python/cpython/commit/5871e19942fdcf83653924ae9a849941669c1143
commit: 5871e19942fdcf83653924ae9a849941669c1143
branch: main
author: Raymond Hettinger <rhettinger at users.noreply.github.com>
committer: rhettinger <rhettinger at users.noreply.github.com>
date: 2022-10-22T07:21:06-05:00
summary:
GH-98363: Slicing isn't necessary. A size reduction will suffice. (GH-98538)
files:
M Modules/itertoolsmodule.c
diff --git a/Modules/itertoolsmodule.c b/Modules/itertoolsmodule.c
index 578c2d942885..381ec3b31d52 100644
--- a/Modules/itertoolsmodule.c
+++ b/Modules/itertoolsmodule.c
@@ -167,23 +167,22 @@ batched_next(batchedobject *bo)
null_item:
if (PyErr_Occurred()) {
- if (PyErr_ExceptionMatches(PyExc_StopIteration)) {
- PyErr_Clear();
- } else {
- /* input raised an exception other than StopIteration */
+ if (!PyErr_ExceptionMatches(PyExc_StopIteration)) {
+ /* Input raised an exception other than StopIteration */
Py_CLEAR(bo->it);
Py_DECREF(result);
return NULL;
}
+ PyErr_Clear();
}
if (i == 0) {
Py_CLEAR(bo->it);
Py_DECREF(result);
return NULL;
}
- PyObject *short_list = PyList_GetSlice(result, 0, i);
- Py_DECREF(result);
- return short_list;
+ /* Elements in result[i:] are still NULL */
+ Py_SET_SIZE(result, i);
+ return result;
}
static PyTypeObject batched_type = {
More information about the Python-checkins
mailing list