Lines Matching refs:ao
55 arrayobject *ao; member
2812 static PyObject *array_iter(arrayobject *ao);
2872 array_iter(arrayobject *ao) in array_iter() argument
2874 array_state *state = find_array_state_by_type(Py_TYPE(ao)); in array_iter()
2877 if (!array_Check(ao, state)) { in array_iter()
2886 Py_INCREF(ao); in array_iter()
2887 it->ao = ao; in array_iter()
2889 it->getitem = ao->ob_descr->getitem; in array_iter()
2897 arrayobject *ao; in arrayiter_next() local
2904 ao = it->ao; in arrayiter_next()
2905 if (ao == NULL) { in arrayiter_next()
2909 assert(array_Check(ao, state)); in arrayiter_next()
2911 if (it->index < Py_SIZE(ao)) { in arrayiter_next()
2912 return (*it->getitem)(ao, it->index++); in arrayiter_next()
2914 it->ao = NULL; in arrayiter_next()
2915 Py_DECREF(ao); in arrayiter_next()
2925 Py_XDECREF(it->ao); in arrayiter_dealloc()
2934 Py_VISIT(it->ao); in arrayiter_traverse()
2950 if (self->ao == NULL) { in array_arrayiterator___reduce___impl()
2953 return Py_BuildValue("N(O)n", func, self->ao, self->index); in array_arrayiterator___reduce___impl()
2974 else if (index > Py_SIZE(self->ao)) in array_arrayiterator___setstate__()
2975 index = Py_SIZE(self->ao); /* iterator exhausted */ in array_arrayiterator___setstate__()