@@ -2736,11 +2736,11 @@ static PyObject *list_reversed(PyListObject *, PyObject *);
27362736static void listreviter_dealloc (listreviterobject * );
27372737static int listreviter_traverse (listreviterobject * , visitproc , void * );
27382738static PyObject * listreviter_next (listreviterobject * );
2739- static Py_ssize_t listreviter_len (listreviterobject * );
2739+ static PyObject * listreviter_len (listreviterobject * );
27402740
2741- static PySequenceMethods listreviter_as_sequence = {
2742- ( lenfunc )listreviter_len , /* sq_length */
2743- 0 , /* sq_concat */
2741+ static PyMethodDef listreviter_methods [] = {
2742+ { "__length_hint__" , ( PyCFunction )listreviter_len , METH_NOARGS , length_hint_doc },
2743+ { NULL , NULL } /* sentinel */
27442744};
27452745
27462746PyTypeObject PyListRevIter_Type = {
@@ -2756,7 +2756,7 @@ PyTypeObject PyListRevIter_Type = {
27562756 0 , /* tp_compare */
27572757 0 , /* tp_repr */
27582758 0 , /* tp_as_number */
2759- & listreviter_as_sequence , /* tp_as_sequence */
2759+ 0 , /* tp_as_sequence */
27602760 0 , /* tp_as_mapping */
27612761 0 , /* tp_hash */
27622762 0 , /* tp_call */
@@ -2772,6 +2772,7 @@ PyTypeObject PyListRevIter_Type = {
27722772 0 , /* tp_weaklistoffset */
27732773 PyObject_SelfIter , /* tp_iter */
27742774 (iternextfunc )listreviter_next , /* tp_iternext */
2775+ listreviter_methods , /* tp_methods */
27752776 0 ,
27762777};
27772778
@@ -2827,12 +2828,12 @@ listreviter_next(listreviterobject *it)
28272828 return NULL ;
28282829}
28292830
2830- static Py_ssize_t
2831+ static PyObject *
28312832listreviter_len (listreviterobject * it )
28322833{
28332834 Py_ssize_t len = it -> it_index + 1 ;
28342835 if (it -> it_seq == NULL || PyList_GET_SIZE (it -> it_seq ) < len )
2835- return 0 ;
2836- return len ;
2836+ len = 0 ;
2837+ return PyLong_FromSsize_t ( len ) ;
28372838}
28382839
0 commit comments