From 451bec211f9218c9fae258c89002df4655af1bb0 Mon Sep 17 00:00:00 2001 From: andrewloux Date: Thu, 12 Feb 2026 18:20:07 -0500 Subject: [PATCH 1/3] gh-140009: Use PyTuple_FromArray in dictitems_xor_lock_held --- Objects/dictobject.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/Objects/dictobject.c b/Objects/dictobject.c index ae7bf61767dc3b..4c457a01b66a8c 100644 --- a/Objects/dictobject.c +++ b/Objects/dictobject.c @@ -6292,7 +6292,8 @@ dictitems_xor_lock_held(PyObject *d1, PyObject *d2) } } else { - PyObject *pair = PyTuple_Pack(2, key, val2); + PyObject *items[] = {key, val2}; + PyObject *pair = PyTuple_FromArray(items, 2); if (pair == NULL) { goto error; } From 01ba9e3f8b85159654553c13ca9812b0828e74c5 Mon Sep 17 00:00:00 2001 From: andrewloux Date: Thu, 12 Feb 2026 22:06:55 -0500 Subject: [PATCH 2/3] gh-140009: Add news entry for dict.items() symmetric difference optimization --- .../2026-02-12-11-20-00.gh-issue-140009.dictxor.rst | 1 + 1 file changed, 1 insertion(+) create mode 100644 Misc/NEWS.d/next/Core_and_Builtins/2026-02-12-11-20-00.gh-issue-140009.dictxor.rst diff --git a/Misc/NEWS.d/next/Core_and_Builtins/2026-02-12-11-20-00.gh-issue-140009.dictxor.rst b/Misc/NEWS.d/next/Core_and_Builtins/2026-02-12-11-20-00.gh-issue-140009.dictxor.rst new file mode 100644 index 00000000000000..f6a518f313167a --- /dev/null +++ b/Misc/NEWS.d/next/Core_and_Builtins/2026-02-12-11-20-00.gh-issue-140009.dictxor.rst @@ -0,0 +1 @@ +Optimize :meth:`dict.items` symmetric difference by using :c:func:`PyTuple_FromArray` instead of :c:func:`PyTuple_Pack`. From 290117b7527624ec9039f3d40ba582efc8387b35 Mon Sep 17 00:00:00 2001 From: andrewloux Date: Fri, 13 Feb 2026 04:58:02 -0500 Subject: [PATCH 3/3] gh-140009: Trigger CI rerun