diff options
author | Sam Gross <colesbury@gmail.com> | 2024-08-12 18:49:49 (GMT) |
---|---|---|
committer | GitHub <noreply@github.com> | 2024-08-12 18:49:49 (GMT) |
commit | ab094d1b2b348f670743f88e52d1a3f2cab5abd5 (patch) | |
tree | 4b428aee12b8eb286e1405527846c40206adef05 /Python/executor_cases.c.h | |
parent | 736fe4d23e267a70d3b769046f03c1f3bdc0f430 (diff) | |
download | cpython-ab094d1b2b348f670743f88e52d1a3f2cab5abd5.zip cpython-ab094d1b2b348f670743f88e52d1a3f2cab5abd5.tar.gz cpython-ab094d1b2b348f670743f88e52d1a3f2cab5abd5.tar.bz2 |
gh-117139: Replace _PyList_FromArraySteal with stack ref variant (#122830)
This replaces `_PyList_FromArraySteal` with `_PyList_FromStackRefSteal`.
It's functionally equivalent, but takes a `_PyStackRef` array instead of
an array of `PyObject` pointers.
Co-authored-by: Ken Jin <kenjin@python.org>
Diffstat (limited to 'Python/executor_cases.c.h')
-rw-r--r-- | Python/executor_cases.c.h | 10 |
1 files changed, 1 insertions, 9 deletions
diff --git a/Python/executor_cases.c.h b/Python/executor_cases.c.h index d64ef0c..9102d68 100644 --- a/Python/executor_cases.c.h +++ b/Python/executor_cases.c.h @@ -1882,15 +1882,7 @@ _PyStackRef list; oparg = CURRENT_OPARG(); values = &stack_pointer[-oparg]; - STACKREFS_TO_PYOBJECTS(values, oparg, values_o); - if (CONVERSION_FAILED(values_o)) { - for (int _i = oparg; --_i >= 0;) { - PyStackRef_CLOSE(values[_i]); - } - if (true) JUMP_TO_ERROR(); - } - PyObject *list_o = _PyList_FromArraySteal(values_o, oparg); - STACKREFS_TO_PYOBJECTS_CLEANUP(values_o); + PyObject *list_o = _PyList_FromStackRefSteal(values, oparg); if (list_o == NULL) JUMP_TO_ERROR(); list = PyStackRef_FromPyObjectSteal(list_o); stack_pointer[-oparg] = list; |