Skip to content

Commit eae1642

Browse files
committed
Address code review
1 parent 18edd99 commit eae1642

3 files changed

Lines changed: 9 additions & 10 deletions

File tree

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,3 @@
1-
Defer GC tracking of :meth:`set.intersection`, :meth:`set.difference` and
2-
:meth:`set.symmetric_difference`. Patch by Donghee Na.
1+
Defer GC tracking of :meth:`set.intersection`, :meth:`set.difference`,
2+
:meth:`set.symmetric_difference`, :meth:`set.union` and ``set.__sub__``.
3+
Patch by Donghee Na.

Misc/NEWS.d/next/Core_and_Builtins/2026-06-26-23-09-34.gh-issue-152235.ArozdF.rst

Lines changed: 0 additions & 2 deletions
This file was deleted.

Objects/setobject.c

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -2067,7 +2067,7 @@ set_difference_update_impl(PySetObject *so, PyObject * const *others,
20672067
}
20682068

20692069
static PyObject *
2070-
set_copy_and_difference(PySetObject *so, PyObject *other)
2070+
set_copy_and_difference_untracked(PySetObject *so, PyObject *other)
20712071
{
20722072
PyObject *result;
20732073

@@ -2081,7 +2081,7 @@ set_copy_and_difference(PySetObject *so, PyObject *other)
20812081
}
20822082

20832083
static PyObject *
2084-
set_difference(PySetObject *so, PyObject *other)
2084+
set_difference_untracked(PySetObject *so, PyObject *other)
20852085
{
20862086
PyObject *result;
20872087
PyObject *key;
@@ -2097,13 +2097,13 @@ set_difference(PySetObject *so, PyObject *other)
20972097
other_size = PyDict_GET_SIZE(other);
20982098
}
20992099
else {
2100-
return set_copy_and_difference(so, other);
2100+
return set_copy_and_difference_untracked(so, other);
21012101
}
21022102

21032103
/* If len(so) much more than len(other), it's more efficient to simply copy
21042104
* so and then iterate other looking for common elements. */
21052105
if ((PySet_GET_SIZE(so) >> 2) > other_size) {
2106-
return set_copy_and_difference(so, other);
2106+
return set_copy_and_difference_untracked(so, other);
21072107
}
21082108

21092109
result = make_new_set_basetype_untracked(Py_TYPE(so), NULL);
@@ -2179,7 +2179,7 @@ set_difference_multi_impl(PySetObject *so, PyObject * const *others,
21792179

21802180
other = others[0];
21812181
Py_BEGIN_CRITICAL_SECTION2(so, other);
2182-
result = set_difference(so, other);
2182+
result = set_difference_untracked(so, other);
21832183
Py_END_CRITICAL_SECTION2();
21842184
if (result == NULL)
21852185
return NULL;
@@ -2208,7 +2208,7 @@ set_sub(PyObject *self, PyObject *other)
22082208

22092209
PyObject *rv;
22102210
Py_BEGIN_CRITICAL_SECTION2(so, other);
2211-
rv = set_difference(so, other);
2211+
rv = set_difference_untracked(so, other);
22122212
Py_END_CRITICAL_SECTION2();
22132213
if (rv != NULL) {
22142214
_PyObject_GC_TRACK(rv);

0 commit comments

Comments
 (0)