From 47c080bf27e00aa7eb5e2ed4e20bbb2ad32f8578 Mon Sep 17 00:00:00 2001 From: Aaron Wieczorek Date: Fri, 2 Jan 2026 17:08:17 +0000 Subject: [PATCH 1/3] Pass PY_VECTORCALL_ARGUMENTS_OFFSET in _Py_CallBuiltinClass_StackRefSteal --- Python/ceval.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Python/ceval.c b/Python/ceval.c index 924afaa97443cb..d90ac5c69b9e81 100644 --- a/Python/ceval.c +++ b/Python/ceval.c @@ -1273,7 +1273,7 @@ _Py_CallBuiltinClass_StackRefSteal( goto cleanup; } PyTypeObject *tp = (PyTypeObject *)PyStackRef_AsPyObjectBorrow(callable); - res = tp->tp_vectorcall((PyObject *)tp, args_o, total_args, NULL); + res = tp->tp_vectorcall((PyObject *)tp, args_o, total_args | PY_VECTORCALL_ARGUMENTS_OFFSET, NULL); STACKREFS_TO_PYOBJECTS_CLEANUP(args_o); assert((res != NULL) ^ (PyErr_Occurred() != NULL)); cleanup: From a1d978bfa624f644719a0a4d9c9dde1a4d91b7cb Mon Sep 17 00:00:00 2001 From: Aaron Wieczorek Date: Fri, 2 Jan 2026 17:12:20 +0000 Subject: [PATCH 2/3] News.d entry for issue 143361 --- .../2026-01-02-17-11-16.gh-issue-143361.YDnvdC.rst | 2 ++ 1 file changed, 2 insertions(+) create mode 100644 Misc/NEWS.d/next/Core_and_Builtins/2026-01-02-17-11-16.gh-issue-143361.YDnvdC.rst diff --git a/Misc/NEWS.d/next/Core_and_Builtins/2026-01-02-17-11-16.gh-issue-143361.YDnvdC.rst b/Misc/NEWS.d/next/Core_and_Builtins/2026-01-02-17-11-16.gh-issue-143361.YDnvdC.rst new file mode 100644 index 00000000000000..2d80d6df886f0a --- /dev/null +++ b/Misc/NEWS.d/next/Core_and_Builtins/2026-01-02-17-11-16.gh-issue-143361.YDnvdC.rst @@ -0,0 +1,2 @@ +Add PY_VECTORCALL_ARGUMENTS_OFFSET to _Py_CallBuiltinClass_StackRefSteal to +avoid redundant allocations From da6806bc101a272fe24804c05ed28081c8e920d0 Mon Sep 17 00:00:00 2001 From: Ken Jin Date: Fri, 2 Jan 2026 17:39:52 +0000 Subject: [PATCH 3/3] Update Misc/NEWS.d/next/Core_and_Builtins/2026-01-02-17-11-16.gh-issue-143361.YDnvdC.rst --- .../2026-01-02-17-11-16.gh-issue-143361.YDnvdC.rst | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Misc/NEWS.d/next/Core_and_Builtins/2026-01-02-17-11-16.gh-issue-143361.YDnvdC.rst b/Misc/NEWS.d/next/Core_and_Builtins/2026-01-02-17-11-16.gh-issue-143361.YDnvdC.rst index 2d80d6df886f0a..df4e3b61c672cb 100644 --- a/Misc/NEWS.d/next/Core_and_Builtins/2026-01-02-17-11-16.gh-issue-143361.YDnvdC.rst +++ b/Misc/NEWS.d/next/Core_and_Builtins/2026-01-02-17-11-16.gh-issue-143361.YDnvdC.rst @@ -1,2 +1,2 @@ -Add PY_VECTORCALL_ARGUMENTS_OFFSET to _Py_CallBuiltinClass_StackRefSteal to +Add ``PY_VECTORCALL_ARGUMENTS_OFFSET`` to ``_Py_CallBuiltinClass_StackRefSteal`` to avoid redundant allocations