Mercurial > cpython-lru_cache-weakref
diff Objects/enumobject.c @ 35636:e22334b1da67 legacy-trunk
Convert iterator __len__() methods to a private API.
| author | Raymond Hettinger <python@rcn.com> |
|---|---|
| date | Sat, 24 Sep 2005 21:23:05 +0000 |
| parents | c2c49ee727d0 |
| children | 9541369b0dca |
line wrap: on
line diff
--- a/Objects/enumobject.c Sat Sep 24 14:58:47 2005 +0000 +++ b/Objects/enumobject.c Sat Sep 24 21:23:05 2005 +0000 @@ -239,23 +239,25 @@ "\n" "Return a reverse iterator"); -static int +static PyObject * reversed_len(reversedobject *ro) { int position, seqsize; if (ro->seq == NULL) - return 0; + return PyInt_FromLong(0); seqsize = PySequence_Size(ro->seq); if (seqsize == -1) - return -1; + return NULL; position = ro->index + 1; - return (seqsize < position) ? 0 : position; + return PyInt_FromLong((seqsize < position) ? 0 : position); } -static PySequenceMethods reversed_as_sequence = { - (inquiry)reversed_len, /* sq_length */ - 0, /* sq_concat */ +PyDoc_STRVAR(length_cue_doc, "Private method returning an estimate of len(list(it))."); + +static PyMethodDef reversediter_methods[] = { + {"_length_cue", (PyCFunction)reversed_len, METH_NOARGS, length_cue_doc}, + {NULL, NULL} /* sentinel */ }; PyTypeObject PyReversed_Type = { @@ -272,7 +274,7 @@ 0, /* tp_compare */ 0, /* tp_repr */ 0, /* tp_as_number */ - &reversed_as_sequence, /* tp_as_sequence */ + 0, /* tp_as_sequence */ 0, /* tp_as_mapping */ 0, /* tp_hash */ 0, /* tp_call */ @@ -289,7 +291,7 @@ 0, /* tp_weaklistoffset */ PyObject_SelfIter, /* tp_iter */ (iternextfunc)reversed_next, /* tp_iternext */ - 0, /* tp_methods */ + reversediter_methods, /* tp_methods */ 0, /* tp_members */ 0, /* tp_getset */ 0, /* tp_base */
