diff options
author | Michael W. Hudson <mwh@python.net> | 2002-11-06 15:17:32 (GMT) |
---|---|---|
committer | Michael W. Hudson <mwh@python.net> | 2002-11-06 15:17:32 (GMT) |
commit | cbd6fb90069ded106833efc42b1c93bcf9b958c3 (patch) | |
tree | 8eeab999a6326865b004c50ebbf3dca1ebe1f334 | |
parent | 9050a517c8393a473b42333281e36ec35370af35 (diff) | |
download | cpython-cbd6fb90069ded106833efc42b1c93bcf9b958c3.zip cpython-cbd6fb90069ded106833efc42b1c93bcf9b958c3.tar.gz cpython-cbd6fb90069ded106833efc42b1c93bcf9b958c3.tar.bz2 |
Handle really big steps in extended slices.
Fixes a test failure on 64 bit platforms (I hope).
-rw-r--r-- | Objects/sliceobject.c | 7 | ||||
-rw-r--r-- | Python/ceval.c | 2 |
2 files changed, 3 insertions, 6 deletions
diff --git a/Objects/sliceobject.c b/Objects/sliceobject.c index a035e5f..7198cca 100644 --- a/Objects/sliceobject.c +++ b/Objects/sliceobject.c @@ -121,11 +121,8 @@ PySlice_GetIndicesEx(PySliceObject *r, int length, *step = 1; } else { - *step = PyInt_AsLong(r->step); - if (*step == -1 && PyErr_Occurred()) { - return -1; - } - else if (*step == 0) { + if (!_PyEval_SliceIndex(r->step, step)) return -1; + if (*step == 0) { PyErr_SetString(PyExc_ValueError, "slice step cannot be zero"); return -1; diff --git a/Python/ceval.c b/Python/ceval.c index afc480e..09b88a6 100644 --- a/Python/ceval.c +++ b/Python/ceval.c @@ -3507,7 +3507,7 @@ _PyEval_SliceIndex(PyObject *v, int *pi) if (x > INT_MAX) x = INT_MAX; else if (x < -INT_MAX) - x = 0; + x = -INT_MAX; *pi = x; } return 1; |