diff --git a/Objects/listobject.c b/Objects/listobject.c index e11a3fdd135..a08b3b50dd9 100644 --- a/Objects/listobject.c +++ b/Objects/listobject.c @@ -476,14 +476,6 @@ list_slice(PyListObject *a, Py_ssize_t ilow, Py_ssize_t ihigh) PyListObject *np; PyObject **src, **dest; Py_ssize_t i, len; - if (ilow < 0) - ilow = 0; - else if (ilow > Py_SIZE(a)) - ilow = Py_SIZE(a); - if (ihigh < ilow) - ihigh = ilow; - else if (ihigh > Py_SIZE(a)) - ihigh = Py_SIZE(a); len = ihigh - ilow; np = (PyListObject *) list_new_prealloc(len); if (np == NULL) @@ -507,6 +499,18 @@ PyList_GetSlice(PyObject *a, Py_ssize_t ilow, Py_ssize_t ihigh) PyErr_BadInternalCall(); return NULL; } + if (ilow < 0) { + ilow = 0; + } + else if (ilow > Py_SIZE(a)) { + ilow = Py_SIZE(a); + } + if (ihigh < ilow) { + ihigh = ilow; + } + else if (ihigh > Py_SIZE(a)) { + ihigh = Py_SIZE(a); + } return list_slice((PyListObject *)a, ilow, ihigh); }