Skip to content

Commit 31cd25f

Browse files
bpo-43464: Optimize set.intersection() for non-set arguments (pythonGH-31316)
1 parent 50872db commit 31cd25f

File tree

2 files changed

+5
-0
lines changed

2 files changed

+5
-0
lines changed
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
Optimize :meth:`set.intersection` for non-set arguments.

Objects/setobject.c

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1240,6 +1240,10 @@ set_intersection(PySetObject *so, PyObject *other)
12401240
if (rv) {
12411241
if (set_add_entry(result, key, hash))
12421242
goto error;
1243+
if (PySet_GET_SIZE(result) >= PySet_GET_SIZE(so)) {
1244+
Py_DECREF(key);
1245+
break;
1246+
}
12431247
}
12441248
Py_DECREF(key);
12451249
}

0 commit comments

Comments
 (0)