diff options
author | Tim Peters <tim.peters@gmail.com> | 2001-09-08 04:00:12 (GMT) |
---|---|---|
committer | Tim Peters <tim.peters@gmail.com> | 2001-09-08 04:00:12 (GMT) |
commit | 16a77adfbd745c202878fabb0b921514fec7ca16 (patch) | |
tree | 988fb5ffb34db1c7a12aa89c100efe1af17e80c6 /Objects/classobject.c | |
parent | 2d84f2c95a59b815ef6864805bb6b04b79d0e106 (diff) | |
download | cpython-16a77adfbd745c202878fabb0b921514fec7ca16.zip cpython-16a77adfbd745c202878fabb0b921514fec7ca16.tar.gz cpython-16a77adfbd745c202878fabb0b921514fec7ca16.tar.bz2 |
Generalize operator.indexOf (PySequence_Index) to work with any
iterable object. I'm not sure how that got overlooked before!
Got rid of the internal _PySequence_IterContains, introduced a new
internal _PySequence_IterSearch, and rewrote all the iteration-based
"count of", "index of", and "is the object in it or not?" routines to
just call the new function. I suppose it's slower this way, but the
code duplication was getting depressing.
Diffstat (limited to 'Objects/classobject.c')
-rw-r--r-- | Objects/classobject.c | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/Objects/classobject.c b/Objects/classobject.c index 4b69842..9d84173 100644 --- a/Objects/classobject.c +++ b/Objects/classobject.c @@ -1224,7 +1224,8 @@ instance_contains(PyInstanceObject *inst, PyObject *member) * __contains__ attribute, and try iterating instead. */ PyErr_Clear(); - return _PySequence_IterContains((PyObject *)inst, member); + return _PySequence_IterSearch((PyObject *)inst, member, + PY_ITERSEARCH_CONTAINS); } else return -1; |