[Python-checkins] python/dist/src/Objects listobject.c,2.107,2.108
tim_one@users.sourceforge.net
tim_one@users.sourceforge.net
Fri, 31 May 2002 22:22:57 -0700
Update of /cvsroot/python/python/dist/src/Objects
In directory usw-pr-cvs1:/tmp/cvs-serv31064/python/dist/src/Objects
Modified Files:
listobject.c
Log Message:
A bogus assert in the new listiter code prevented starting Python in a
debug build. Repaired that, and rewrote other parts to reduce
long-winded casting.
Index: listobject.c
===================================================================
RCS file: /cvsroot/python/python/dist/src/Objects/listobject.c,v
retrieving revision 2.107
retrieving revision 2.108
diff -C2 -d -r2.107 -r2.108
*** listobject.c 31 May 2002 21:37:01 -0000 2.107
--- listobject.c 1 Jun 2002 05:22:55 -0000 2.108
***************
*** 1820,1825 ****
typedef struct {
PyObject_HEAD
! long it_index;
! PyObject *it_seq;
} listiterobject;
--- 1820,1825 ----
typedef struct {
PyObject_HEAD
! long it_index;
! PyListObject *it_seq;
} listiterobject;
***************
*** 1840,1844 ****
it->it_index = 0;
Py_INCREF(seq);
! it->it_seq = seq;
_PyObject_GC_TRACK(it);
return (PyObject *)it;
--- 1840,1844 ----
it->it_index = 0;
Py_INCREF(seq);
! it->it_seq = (PyListObject *)seq;
_PyObject_GC_TRACK(it);
return (PyObject *)it;
***************
*** 1856,1860 ****
listiter_traverse(listiterobject *it, visitproc visit, void *arg)
{
! return visit(it->it_seq, arg);
}
--- 1856,1860 ----
listiter_traverse(listiterobject *it, visitproc visit, void *arg)
{
! return visit((PyObject *)it->it_seq, arg);
}
***************
*** 1868,1881 ****
static PyObject *
! listiter_next(PyObject *it)
{
! PyObject *seq;
PyObject *item;
! assert(PyList_Check(it));
! seq = ((listiterobject *)it)->it_seq;
! if (((listiterobject *)it)->it_index < PyList_GET_SIZE(seq)) {
! item = ((PyListObject *)(seq))->ob_item[((listiterobject *)it)->it_index++];
Py_INCREF(item);
return item;
--- 1868,1883 ----
static PyObject *
! listiter_next(listiterobject *it)
{
! PyListObject *seq;
PyObject *item;
! assert(it != NULL);
! seq = it->it_seq;
! assert(PyList_Check(seq));
! if (it->it_index < PyList_GET_SIZE(seq)) {
! item = PyList_GET_ITEM(seq, it->it_index);
! ++it->it_index;
Py_INCREF(item);
return item;