diff options
author | Mark Shannon <mark@hotpy.org> | 2025-01-22 10:51:37 +0000 |
---|---|---|
committer | GitHub <noreply@github.com> | 2025-01-22 10:51:37 +0000 |
commit | 470a0a68ebbbb4254f1a3e8e22cce0c3a0827055 (patch) | |
tree | 27f602ce33d9c7701db07ad64fb0342c8f49a65a /Objects/tupleobject.c | |
parent | a65f802692bd04e1ad18e467d4ccb033b049c2a7 (diff) | |
download | cpython-470a0a68ebbbb4254f1a3e8e22cce0c3a0827055.tar.gz cpython-470a0a68ebbbb4254f1a3e8e22cce0c3a0827055.zip |
GH-128682: Change a couple of functions to only steal references on success. (GH-129132)
Change PyTuple_FromStackRefSteal and PyList_FromStackRefSteal to only steal on success to avoid escaping
Diffstat (limited to 'Objects/tupleobject.c')
-rw-r--r-- | Objects/tupleobject.c | 5 |
1 files changed, 1 insertions, 4 deletions
diff --git a/Objects/tupleobject.c b/Objects/tupleobject.c index 002002eb455..7fe8553030a 100644 --- a/Objects/tupleobject.c +++ b/Objects/tupleobject.c @@ -391,16 +391,13 @@ _PyTuple_FromArray(PyObject *const *src, Py_ssize_t n) } PyObject * -_PyTuple_FromStackRefSteal(const _PyStackRef *src, Py_ssize_t n) +_PyTuple_FromStackRefStealOnSuccess(const _PyStackRef *src, Py_ssize_t n) { if (n == 0) { return tuple_get_empty(); } PyTupleObject *tuple = tuple_alloc(n); if (tuple == NULL) { - for (Py_ssize_t i = 0; i < n; i++) { - PyStackRef_CLOSE(src[i]); - } return NULL; } PyObject **dst = tuple->ob_item; |