aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/Objects/enumobject.c
diff options
context:
space:
mode:
Diffstat (limited to 'Objects/enumobject.c')
-rw-r--r--Objects/enumobject.c38
1 files changed, 13 insertions, 25 deletions
diff --git a/Objects/enumobject.c b/Objects/enumobject.c
index 1ef381f3914..00a33463cd6 100644
--- a/Objects/enumobject.c
+++ b/Objects/enumobject.c
@@ -16,7 +16,7 @@ enum_new(PyTypeObject *type, PyObject *args, PyObject *kwds)
enumobject *en;
PyObject *seq = NULL;
PyObject *start = NULL;
- static char *kwlist[] = {"sequence", "start", 0};
+ static char *kwlist[] = {"iterable", "start", 0};
if (!PyArg_ParseTupleAndKeywords(args, kwds, "O|O:enumerate", kwlist,
&seq, &start))
@@ -31,8 +31,8 @@ enum_new(PyTypeObject *type, PyObject *args, PyObject *kwds)
Py_DECREF(en);
return NULL;
}
- assert(PyInt_Check(start) || PyLong_Check(start));
- en->en_index = PyInt_AsSsize_t(start);
+ assert(PyLong_Check(start));
+ en->en_index = PyLong_AsSsize_t(start);
if (en->en_index == -1 && PyErr_Occurred()) {
PyErr_Clear();
en->en_index = PY_SSIZE_T_MAX;
@@ -86,12 +86,12 @@ enum_next_long(enumobject *en, PyObject* next_item)
PyObject *stepped_up;
if (en->en_longindex == NULL) {
- en->en_longindex = PyInt_FromSsize_t(PY_SSIZE_T_MAX);
+ en->en_longindex = PyLong_FromSsize_t(PY_SSIZE_T_MAX);
if (en->en_longindex == NULL)
return NULL;
}
if (one == NULL) {
- one = PyInt_FromLong(1);
+ one = PyLong_FromLong(1);
if (one == NULL)
return NULL;
}
@@ -134,7 +134,7 @@ enum_next(enumobject *en)
if (en->en_index == PY_SSIZE_T_MAX)
return enum_next_long(en, next_item);
- next_index = PyInt_FromSsize_t(en->en_index);
+ next_index = PyLong_FromSsize_t(en->en_index);
if (next_index == NULL) {
Py_DECREF(next_item);
return NULL;
@@ -177,7 +177,7 @@ PyTypeObject PyEnum_Type = {
0, /* tp_print */
0, /* tp_getattr */
0, /* tp_setattr */
- 0, /* tp_compare */
+ 0, /* tp_reserved */
0, /* tp_repr */
0, /* tp_as_number */
0, /* tp_as_sequence */
@@ -233,26 +233,14 @@ reversed_new(PyTypeObject *type, PyObject *args, PyObject *kwds)
if (!PyArg_UnpackTuple(args, "reversed", 1, 1, &seq) )
return NULL;
- if (PyInstance_Check(seq)) {
- reversed_meth = PyObject_GetAttrString(seq, "__reversed__");
- if (reversed_meth == NULL) {
- if (PyErr_ExceptionMatches(PyExc_AttributeError))
- PyErr_Clear();
- else
- return NULL;
- }
- }
- else {
- reversed_meth = _PyObject_LookupSpecial(seq, "__reversed__",
- &reversed_cache);
- if (reversed_meth == NULL && PyErr_Occurred())
- return NULL;
- }
+ reversed_meth = _PyObject_LookupSpecial(seq, "__reversed__", &reversed_cache);
if (reversed_meth != NULL) {
PyObject *res = PyObject_CallFunctionObjArgs(reversed_meth, NULL);
Py_DECREF(reversed_meth);
return res;
}
+ else if (PyErr_Occurred())
+ return NULL;
if (!PySequence_Check(seq)) {
PyErr_SetString(PyExc_TypeError,
@@ -321,12 +309,12 @@ reversed_len(reversedobject *ro)
Py_ssize_t position, seqsize;
if (ro->seq == NULL)
- return PyInt_FromLong(0);
+ return PyLong_FromLong(0);
seqsize = PySequence_Size(ro->seq);
if (seqsize == -1)
return NULL;
position = ro->index + 1;
- return PyInt_FromSsize_t((seqsize < position) ? 0 : position);
+ return PyLong_FromSsize_t((seqsize < position) ? 0 : position);
}
PyDoc_STRVAR(length_hint_doc, "Private method returning an estimate of len(list(it)).");
@@ -346,7 +334,7 @@ PyTypeObject PyReversed_Type = {
0, /* tp_print */
0, /* tp_getattr */
0, /* tp_setattr */
- 0, /* tp_compare */
+ 0, /* tp_reserved */
0, /* tp_repr */
0, /* tp_as_number */
0, /* tp_as_sequence */