]> granicus.if.org Git - python/commitdiff
Use Py_ssize_t in slices
authorNeal Norwitz <nnorwitz@gmail.com>
Mon, 3 Apr 2006 04:46:04 +0000 (04:46 +0000)
committerNeal Norwitz <nnorwitz@gmail.com>
Mon, 3 Apr 2006 04:46:04 +0000 (04:46 +0000)
Objects/sliceobject.c

index dbf27323a8cdbd9c0ec08a0f7930962640566785..e33261b81483bd2808c96d678752e7efac1c7ba6 100644 (file)
@@ -107,20 +107,20 @@ PySlice_GetIndices(PySliceObject *r, Py_ssize_t length,
                *step = 1;
        } else {
                if (!PyInt_Check(r->step)) return -1;
-               *step = PyInt_AsLong(r->step);
+               *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;
-               *start = PyInt_AsLong(r->start);
+               *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;
-               *stop = PyInt_AsLong(r->stop);
+               *stop = PyInt_AsSsize_t(r->stop);
                if (*stop < 0) *stop += length;
        }
        if (*stop > length) return -1;
@@ -252,7 +252,7 @@ slice_indices(PySliceObject* self, PyObject* len)
 {
        Py_ssize_t ilen, start, stop, step, slicelength;
 
-       ilen = PyInt_AsLong(len);
+       ilen = PyInt_AsSsize_t(len);
 
        if (ilen == -1 && PyErr_Occurred()) {
                return NULL;
@@ -263,7 +263,7 @@ slice_indices(PySliceObject* self, PyObject* len)
                return NULL;
        }
 
-       return Py_BuildValue("(iii)", start, stop, step);
+       return Py_BuildValue("(nnn)", start, stop, step);
 }
 
 PyDoc_STRVAR(slice_indices_doc,