]> granicus.if.org Git - python/commitdiff
Allow long integers in PySlice_GetIndices.
authorMartin v. Löwis <martin@v.loewis.de>
Mon, 3 Apr 2006 11:38:08 +0000 (11:38 +0000)
committerMartin v. Löwis <martin@v.loewis.de>
Mon, 3 Apr 2006 11:38:08 +0000 (11:38 +0000)
Objects/sliceobject.c

index e33261b81483bd2808c96d678752e7efac1c7ba6..271a9ad62d223823cc4b8508f98d5a84eddb5f8d 100644 (file)
@@ -106,20 +106,20 @@ PySlice_GetIndices(PySliceObject *r, Py_ssize_t length,
        if (r->step == Py_None) {
                *step = 1;
        } else {
-               if (!PyInt_Check(r->step)) return -1;
+               if (!PyInt_Check(r->step) && !PyLong_Check(r->step)) return -1;
                *step = PyInt_AsSsize_t(r->step);
        }
        if (r->start == Py_None) {
                *start = *step < 0 ? length-1 : 0;
        } else {
-               if (!PyInt_Check(r->start)) return -1;
+               if (!PyInt_Check(r->start) && !PyLong_Check(r->step)) return -1;
                *start = PyInt_AsSsize_t(r->start);
                if (*start < 0) *start += length;
        }
        if (r->stop == Py_None) {
                *stop = *step < 0 ? -1 : length;
        } else {
-               if (!PyInt_Check(r->stop)) return -1;
+               if (!PyInt_Check(r->stop) && !PyLong_Check(r->step)) return -1;
                *stop = PyInt_AsSsize_t(r->stop);
                if (*stop < 0) *stop += length;
        }