summaryrefslogtreecommitdiffstats
path: root/Python/executor_cases.c.h
diff options
context:
space:
mode:
authorSam Gross <colesbury@gmail.com>2024-08-12 18:49:49 (GMT)
committerGitHub <noreply@github.com>2024-08-12 18:49:49 (GMT)
commitab094d1b2b348f670743f88e52d1a3f2cab5abd5 (patch)
tree4b428aee12b8eb286e1405527846c40206adef05 /Python/executor_cases.c.h
parent736fe4d23e267a70d3b769046f03c1f3bdc0f430 (diff)
downloadcpython-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.h10
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;