diff --git a/Misc/NEWS.d/next/Core_and_Builtins/2026-10-02-16-19-35.gh-issue-158592.V6W21J.rst b/Misc/NEWS.d/next/Core_and_Builtins/2026-10-02-16-19-35.gh-issue-158592.V6W21J.rst new file mode 100644 index 00000000000000..1112ca8e63d314 --- /dev/null +++ b/Misc/NEWS.d/next/Core_and_Builtins/2026-10-02-16-19-35.gh-issue-158592.V6W21J.rst @@ -0,0 +1 @@ +``del list[index]`` now triggers shrinking the list's internal array. diff --git a/Objects/listobject.c b/Objects/listobject.c index 87a669f203589d..a4ad1094ba51ce 100644 --- a/Objects/listobject.c +++ b/Objects/listobject.c @@ -1182,7 +1182,7 @@ list_ass_item_lock_held(PyListObject *a, Py_ssize_t i, PyObject *v) if (i < size - 1) { list_shift_items_left_lock_held(a, i, size - 1); } - Py_SET_SIZE(a, size - 1); + list_resize(a, size - 1); // NB: shrinking a list can't fail } else { FT_ATOMIC_STORE_PTR_RELEASE(a->ob_item[i], Py_NewRef(v));