mirror of https://github.com/python/cpython
Merge 65215: convert uses of int to Py_Ssize_t.
This commit is contained in:
parent
6e6f59b1c9
commit
d4d478d1c6
|
@ -4,10 +4,10 @@
|
||||||
|
|
||||||
typedef struct {
|
typedef struct {
|
||||||
PyObject_HEAD
|
PyObject_HEAD
|
||||||
long en_index; /* current index of enumeration */
|
Py_ssize_t en_index; /* current index of enumeration */
|
||||||
PyObject* en_sit; /* secondary iterator of enumeration */
|
PyObject* en_sit; /* secondary iterator of enumeration */
|
||||||
PyObject* en_result; /* result tuple */
|
PyObject* en_result; /* result tuple */
|
||||||
PyObject* en_longindex; /* index for sequences >= LONG_MAX */
|
PyObject* en_longindex; /* index for sequences >= PY_SSIZE_T_MAX */
|
||||||
} enumobject;
|
} enumobject;
|
||||||
|
|
||||||
static PyObject *
|
static PyObject *
|
||||||
|
@ -25,14 +25,21 @@ enum_new(PyTypeObject *type, PyObject *args, PyObject *kwds)
|
||||||
en = (enumobject *)type->tp_alloc(type, 0);
|
en = (enumobject *)type->tp_alloc(type, 0);
|
||||||
if (en == NULL)
|
if (en == NULL)
|
||||||
return NULL;
|
return NULL;
|
||||||
if (start) {
|
if (start != NULL) {
|
||||||
start = PyNumber_Index(start);
|
start = PyNumber_Index(start);
|
||||||
if (start == NULL) {
|
if (start == NULL) {
|
||||||
Py_DECREF(en);
|
Py_DECREF(en);
|
||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
en->en_index = LONG_MAX;
|
en->en_index = PyLong_AsSsize_t(start);
|
||||||
|
if (en->en_index == -1 && PyErr_Occurred()) {
|
||||||
|
PyErr_Clear();
|
||||||
|
en->en_index = PY_SSIZE_T_MAX;
|
||||||
en->en_longindex = start;
|
en->en_longindex = start;
|
||||||
|
} else {
|
||||||
|
en->en_longindex = NULL;
|
||||||
|
Py_DECREF(start);
|
||||||
|
}
|
||||||
} else {
|
} else {
|
||||||
en->en_index = 0;
|
en->en_index = 0;
|
||||||
en->en_longindex = NULL;
|
en->en_longindex = NULL;
|
||||||
|
@ -78,7 +85,7 @@ enum_next_long(enumobject *en, PyObject* next_item)
|
||||||
PyObject *stepped_up;
|
PyObject *stepped_up;
|
||||||
|
|
||||||
if (en->en_longindex == NULL) {
|
if (en->en_longindex == NULL) {
|
||||||
en->en_longindex = PyLong_FromLong(LONG_MAX);
|
en->en_longindex = PyLong_FromSsize_t(PY_SSIZE_T_MAX);
|
||||||
if (en->en_longindex == NULL)
|
if (en->en_longindex == NULL)
|
||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
|
@ -123,10 +130,10 @@ enum_next(enumobject *en)
|
||||||
if (next_item == NULL)
|
if (next_item == NULL)
|
||||||
return NULL;
|
return NULL;
|
||||||
|
|
||||||
if (en->en_index == LONG_MAX)
|
if (en->en_index == PY_SSIZE_T_MAX)
|
||||||
return enum_next_long(en, next_item);
|
return enum_next_long(en, next_item);
|
||||||
|
|
||||||
next_index = PyLong_FromLong(en->en_index);
|
next_index = PyLong_FromSsize_t(en->en_index);
|
||||||
if (next_index == NULL) {
|
if (next_index == NULL) {
|
||||||
Py_DECREF(next_item);
|
Py_DECREF(next_item);
|
||||||
return NULL;
|
return NULL;
|
||||||
|
|
Loading…
Reference in New Issue