@@ -2736,11 +2736,11 @@ static PyObject *list_reversed(PyListObject *, PyObject *);
2736
2736
static void listreviter_dealloc (listreviterobject * );
2737
2737
static int listreviter_traverse (listreviterobject * , visitproc , void * );
2738
2738
static PyObject * listreviter_next (listreviterobject * );
2739
- static Py_ssize_t listreviter_len (listreviterobject * );
2739
+ static PyObject * listreviter_len (listreviterobject * );
2740
2740
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 */
2744
2744
};
2745
2745
2746
2746
PyTypeObject PyListRevIter_Type = {
@@ -2756,7 +2756,7 @@ PyTypeObject PyListRevIter_Type = {
2756
2756
0 , /* tp_compare */
2757
2757
0 , /* tp_repr */
2758
2758
0 , /* tp_as_number */
2759
- & listreviter_as_sequence , /* tp_as_sequence */
2759
+ 0 , /* tp_as_sequence */
2760
2760
0 , /* tp_as_mapping */
2761
2761
0 , /* tp_hash */
2762
2762
0 , /* tp_call */
@@ -2772,6 +2772,7 @@ PyTypeObject PyListRevIter_Type = {
2772
2772
0 , /* tp_weaklistoffset */
2773
2773
PyObject_SelfIter , /* tp_iter */
2774
2774
(iternextfunc )listreviter_next , /* tp_iternext */
2775
+ listreviter_methods , /* tp_methods */
2775
2776
0 ,
2776
2777
};
2777
2778
@@ -2827,12 +2828,12 @@ listreviter_next(listreviterobject *it)
2827
2828
return NULL ;
2828
2829
}
2829
2830
2830
- static Py_ssize_t
2831
+ static PyObject *
2831
2832
listreviter_len (listreviterobject * it )
2832
2833
{
2833
2834
Py_ssize_t len = it -> it_index + 1 ;
2834
2835
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 ) ;
2837
2838
}
2838
2839
0 commit comments