Add PyList_GetItemRef
, a variant of PyList_GetItem
that returns a strong reference · Issue #114329 · python/cpython (original) (raw)
Feature or enhancement
The free-threaded builds need a variant of PyList_GetItem
that returns a strong reference instead of a borrowed reference for thread-safety reasons. PEP 703 proposed PyList_FetchItem, but since then PyDict_GetItemRef
and functions with similar signatures have been added.
This proposes PyList_GetItemRef
with the following signature:
PyObject *PyList_GetItemRef(PyObject *list, Py_ssize_t index)
Return a strong reference to the object at position index in the list pointed to by list. If index
is out of bounds (<0 or >=len(list)), return NULL and set an IndexError. If list
is not a list instance, return NULL and set a TypeError.