[Python-checkins] python/dist/src/Objects listobject.c,2.134,2.135
rhettinger@users.sourceforge.net
rhettinger@users.sourceforge.net
Thu, 05 Sep 2002 07:23:52 -0700
Update of /cvsroot/python/python/dist/src/Objects
In directory usw-pr-cvs1:/tmp/cvs-serv21947
Modified Files:
listobject.c
Log Message:
Micro-optimization for list_contains. Factored double if test
out of the loop.
Index: listobject.c
===================================================================
RCS file: /cvsroot/python/python/dist/src/Objects/listobject.c,v
retrieving revision 2.134
retrieving revision 2.135
diff -C2 -d -r2.134 -r2.135
*** listobject.c 10 Aug 2002 05:21:15 -0000 2.134
--- listobject.c 5 Sep 2002 14:23:49 -0000 2.135
***************
*** 321,334 ****
list_contains(PyListObject *a, PyObject *el)
{
! int i;
! for (i = 0; i < a->ob_size; ++i) {
! int cmp = PyObject_RichCompareBool(el, PyList_GET_ITEM(a, i),
Py_EQ);
! if (cmp > 0)
! return 1;
! else if (cmp < 0)
! return -1;
! }
return 0;
}
--- 321,333 ----
list_contains(PyListObject *a, PyObject *el)
{
! int i, cmp;
! for (i = 0, cmp = 0 ; cmp == 0 && i < a->ob_size; ++i)
! cmp = PyObject_RichCompareBool(el, PyList_GET_ITEM(a, i),
Py_EQ);
! if (cmp > 0)
! return 1;
! if (cmp < 0)
! return -1;
return 0;
}