mirror of
https://github.com/python/cpython.git
synced 2025-08-31 14:07:50 +00:00
Handle really big steps in extended slices.
Fixes a test failure on 64 bit platforms (I hope).
This commit is contained in:
parent
9050a517c8
commit
cbd6fb9006
2 changed files with 3 additions and 6 deletions
|
@ -121,11 +121,8 @@ PySlice_GetIndicesEx(PySliceObject *r, int length,
|
||||||
*step = 1;
|
*step = 1;
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
*step = PyInt_AsLong(r->step);
|
if (!_PyEval_SliceIndex(r->step, step)) return -1;
|
||||||
if (*step == -1 && PyErr_Occurred()) {
|
if (*step == 0) {
|
||||||
return -1;
|
|
||||||
}
|
|
||||||
else if (*step == 0) {
|
|
||||||
PyErr_SetString(PyExc_ValueError,
|
PyErr_SetString(PyExc_ValueError,
|
||||||
"slice step cannot be zero");
|
"slice step cannot be zero");
|
||||||
return -1;
|
return -1;
|
||||||
|
|
|
@ -3507,7 +3507,7 @@ _PyEval_SliceIndex(PyObject *v, int *pi)
|
||||||
if (x > INT_MAX)
|
if (x > INT_MAX)
|
||||||
x = INT_MAX;
|
x = INT_MAX;
|
||||||
else if (x < -INT_MAX)
|
else if (x < -INT_MAX)
|
||||||
x = 0;
|
x = -INT_MAX;
|
||||||
*pi = x;
|
*pi = x;
|
||||||
}
|
}
|
||||||
return 1;
|
return 1;
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue