From: Victor Stinner Date: Wed, 23 Apr 2025 06:59:30 +0000 (+0200) Subject: gh-132713: Simplify list_repr_impl() (#132811) X-Git-Tag: v3.14.0b1~353 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=de9deb7ca7120fbb5cbbb53044ce91087065e723;p=thirdparty%2FPython%2Fcpython.git gh-132713: Simplify list_repr_impl() (#132811) --- diff --git a/Objects/listobject.c b/Objects/listobject.c index 3f665a4929f1..2ac4ce095fca 100644 --- a/Objects/listobject.c +++ b/Objects/listobject.c @@ -595,12 +595,8 @@ list_repr_impl(PyListObject *v) /* Do repr() on each element. Note that this may mutate the list, so must refetch the list size on each iteration. */ for (Py_ssize_t i = 0; i < Py_SIZE(v); ++i) { - item = list_get_item_ref(v, i); - if (item == NULL) { - // List truncated while iterating on it - PyErr_Clear(); - break; - } + /* Hold a strong reference since repr(item) can mutate the list */ + item = Py_NewRef(v->ob_item[i]); if (i > 0) { if (PyUnicodeWriter_WriteChar(writer, ',') < 0) {