Mercurial > cpython-lru_cache-weakref
diff Objects/setobject.c @ 31019:b2fd7af17186 legacy-trunk
Expose dict_contains() and PyDict_Contains() with is about 10% faster
than PySequence_Contains() and more clearly applicable to dicts.
Apply the new function in setobject.c where __contains__ checking is
ubiquitous.
| author | Raymond Hettinger <python@rcn.com> |
|---|---|
| date | Tue, 25 Nov 2003 21:12:14 +0000 |
| parents | 8d413578eb1a |
| children | e4fb6164158c |
line wrap: on
line diff
--- a/Objects/setobject.c Tue Nov 25 16:21:00 2003 +0000 +++ b/Objects/setobject.c Tue Nov 25 21:12:14 2003 +0000 @@ -143,13 +143,13 @@ PyObject *tmp; int result; - result = PySequence_Contains(so->data, key); + result = PyDict_Contains(so->data, key); if (result == -1 && PyAnySet_Check(key)) { PyErr_Clear(); tmp = frozenset_dict_wrapper(((PySetObject *)(key))->data); if (tmp == NULL) return -1; - result = PySequence_Contains(so->data, tmp); + result = PyDict_Contains(so->data, tmp); Py_DECREF(tmp); } return result; @@ -252,7 +252,7 @@ } while ((item = PyIter_Next(it)) != NULL) { - if (PySequence_Contains(selfdata, item)) { + if (PyDict_Contains(selfdata, item)) { if (PyDict_SetItem(tgtdata, item, Py_True) == -1) { Py_DECREF(it); Py_DECREF(result); @@ -292,7 +292,7 @@ selfdata = so->data; while ((item = PyIter_Next(it)) != NULL) { - if (PySequence_Contains(selfdata, item)) { + if (PyDict_Contains(selfdata, item)) { if (PyDict_SetItem(newdict, item, Py_True) == -1) { Py_DECREF(newdict); Py_DECREF(it); @@ -375,7 +375,7 @@ } while ((item = PyIter_Next(it)) != NULL) { - if (!PySequence_Contains(otherdata, item)) { + if (!PyDict_Contains(otherdata, item)) { if (PyDict_SetItem(tgtdata, item, Py_True) == -1) { Py_XDECREF(otherset); Py_DECREF(it); @@ -481,7 +481,7 @@ return NULL; while ((item = PyIter_Next(it)) != NULL) { - if (PySequence_Contains(selfdata, item)) { + if (PyDict_Contains(selfdata, item)) { if (PyDict_DelItem(selfdata, item) == -1) { Py_XDECREF(otherset); Py_DECREF(it); @@ -541,7 +541,7 @@ return NULL; } while ((item = PyIter_Next(it)) != NULL) { - if (!PySequence_Contains(selfdata, item)) { + if (!PyDict_Contains(selfdata, item)) { if (PyDict_SetItem(tgtdata, item, Py_True) == -1) { Py_DECREF(it); Py_DECREF(item); @@ -562,7 +562,7 @@ return NULL; } while ((item = PyIter_Next(it)) != NULL) { - if (!PySequence_Contains(otherdata, item)) { + if (!PyDict_Contains(otherdata, item)) { if (PyDict_SetItem(tgtdata, item, Py_True) == -1) { Py_DECREF(it); Py_DECREF(item); @@ -634,7 +634,7 @@ otherdata = ((PySetObject *)other)->data; while ((item = PyIter_Next(it)) != NULL) { - if (!PySequence_Contains(otherdata, item)) { + if (!PyDict_Contains(otherdata, item)) { Py_DECREF(it); Py_DECREF(item); Py_RETURN_FALSE;
