mirror of
https://github.com/python/cpython.git
synced 2025-11-25 21:11:09 +00:00
bpo-30537: use PyNumber in itertools.islice instead of PyLong (#1918)
* bpo-30537: use PyNumber in itertools instead of PyLong * bpo-30537: revert changes except to islice_new * bpo-30537: test itertools.islice and add entry to Misc/NEWS
This commit is contained in:
parent
5edf827c80
commit
0ecdc52514
3 changed files with 20 additions and 4 deletions
|
|
@ -1417,7 +1417,7 @@ islice_new(PyTypeObject *type, PyObject *args, PyObject *kwds)
|
|||
numargs = PyTuple_Size(args);
|
||||
if (numargs == 2) {
|
||||
if (a1 != Py_None) {
|
||||
stop = PyLong_AsSsize_t(a1);
|
||||
stop = PyNumber_AsSsize_t(a1, PyExc_OverflowError);
|
||||
if (stop == -1) {
|
||||
if (PyErr_Occurred())
|
||||
PyErr_Clear();
|
||||
|
|
@ -1429,11 +1429,11 @@ islice_new(PyTypeObject *type, PyObject *args, PyObject *kwds)
|
|||
}
|
||||
} else {
|
||||
if (a1 != Py_None)
|
||||
start = PyLong_AsSsize_t(a1);
|
||||
start = PyNumber_AsSsize_t(a1, PyExc_OverflowError);
|
||||
if (start == -1 && PyErr_Occurred())
|
||||
PyErr_Clear();
|
||||
if (a2 != Py_None) {
|
||||
stop = PyLong_AsSsize_t(a2);
|
||||
stop = PyNumber_AsSsize_t(a2, PyExc_OverflowError);
|
||||
if (stop == -1) {
|
||||
if (PyErr_Occurred())
|
||||
PyErr_Clear();
|
||||
|
|
@ -1453,7 +1453,7 @@ islice_new(PyTypeObject *type, PyObject *args, PyObject *kwds)
|
|||
|
||||
if (a3 != NULL) {
|
||||
if (a3 != Py_None)
|
||||
step = PyLong_AsSsize_t(a3);
|
||||
step = PyNumber_AsSsize_t(a3, PyExc_OverflowError);
|
||||
if (step == -1 && PyErr_Occurred())
|
||||
PyErr_Clear();
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue