Lines Matching refs:tdo
594 teedataobject *tdo;
596 tdo = PyObject_GC_New(teedataobject, &teedataobject_type);
597 if (tdo == NULL)
600 tdo->running = 0;
601 tdo->numread = 0;
602 tdo->nextlink = NULL;
604 tdo->it = it;
605 PyObject_GC_Track(tdo);
606 return (PyObject *)tdo;
610 teedataobject_jumplink(teedataobject *tdo)
612 if (tdo->nextlink == NULL)
613 tdo->nextlink = teedataobject_newinternal(tdo->it);
614 Py_XINCREF(tdo->nextlink);
615 return tdo->nextlink;
619 teedataobject_getitem(teedataobject *tdo, int i)
624 if (i < tdo->numread)
625 value = tdo->values[i];
628 assert(i == tdo->numread);
629 if (tdo->running) {
634 tdo->running = 1;
635 value = PyIter_Next(tdo->it);
636 tdo->running = 0;
639 tdo->numread++;
640 tdo->values[i] = value;
647 teedataobject_traverse(teedataobject *tdo, visitproc visit, void * arg)
651 Py_VISIT(tdo->it);
652 for (i = 0; i < tdo->numread; i++)
653 Py_VISIT(tdo->values[i]);
654 Py_VISIT(tdo->nextlink);
672 teedataobject_clear(teedataobject *tdo)
677 Py_CLEAR(tdo->it);
678 for (i=0 ; i<tdo->numread ; i++)
679 Py_CLEAR(tdo->values[i]);
680 tmp = tdo->nextlink;
681 tdo->nextlink = NULL;
687 teedataobject_dealloc(teedataobject *tdo)
689 PyObject_GC_UnTrack(tdo);
690 teedataobject_clear(tdo);
691 PyObject_GC_Del(tdo);
695 teedataobject_reduce(teedataobject *tdo, PyObject *Py_UNUSED(ignored))
699 PyObject *values = PyList_New(tdo->numread);
703 for (i=0 ; i<tdo->numread ; i++) {
704 Py_INCREF(tdo->values[i]);
705 PyList_SET_ITEM(values, i, tdo->values[i]);
707 return Py_BuildValue("O(ONO)", Py_TYPE(tdo), tdo->it,
709 tdo->nextlink ? tdo->nextlink : Py_None);
727 teedataobject *tdo;
732 tdo = (teedataobject *)teedataobject_newinternal(it);
733 if (!tdo)
740 tdo->values[i] = PyList_GET_ITEM(values, i);
741 Py_INCREF(tdo->values[i]);
744 tdo->numread = Py_SAFE_DOWNCAST(len, Py_ssize_t, int);
750 assert(tdo->nextlink == NULL);
752 tdo->nextlink = next;
758 return (PyObject*)tdo;
761 Py_XDECREF(tdo);
934 teedataobject *tdo;
940 if (!PyArg_ParseTuple(state, "O!i", &teedataobject_type, &tdo, &index)) {
947 Py_INCREF(tdo);
948 Py_XSETREF(to->dataobj, tdo);