diff options
author | Serhiy Storchaka <storchaka@gmail.com> | 2022-04-06 16:56:28 (GMT) |
---|---|---|
committer | GitHub <noreply@github.com> | 2022-04-06 16:56:28 (GMT) |
commit | 31cd25f4e17cd68487dc76c1b2ec162a646818c2 (patch) | |
tree | 12efeb87e5b23ff68dd39b5a48845a99df7888ef /Objects/setobject.c | |
parent | 50872dbadcba1f52867b6f76050cd7b5d0aa1e18 (diff) | |
download | cpython-31cd25f4e17cd68487dc76c1b2ec162a646818c2.zip cpython-31cd25f4e17cd68487dc76c1b2ec162a646818c2.tar.gz cpython-31cd25f4e17cd68487dc76c1b2ec162a646818c2.tar.bz2 |
bpo-43464: Optimize set.intersection() for non-set arguments (GH-31316)
Diffstat (limited to 'Objects/setobject.c')
-rw-r--r-- | Objects/setobject.c | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/Objects/setobject.c b/Objects/setobject.c index 022ae8e..18dc49b 100644 --- a/Objects/setobject.c +++ b/Objects/setobject.c @@ -1240,6 +1240,10 @@ set_intersection(PySetObject *so, PyObject *other) if (rv) { if (set_add_entry(result, key, hash)) goto error; + if (PySet_GET_SIZE(result) >= PySet_GET_SIZE(so)) { + Py_DECREF(key); + break; + } } Py_DECREF(key); } |