From 6024a4b06f0b4951b713dba415d2d72b7924a42b Mon Sep 17 00:00:00 2001 From: Ken Jin <28750310+Fidget-Spinner@users.noreply.github.com> Date: Thu, 28 Mar 2024 03:38:03 +0800 Subject: [PATCH] minor fixups --- Objects/listobject.c | 5 ++++- Python/bytecodes.c | 2 +- Python/executor_cases.c.h | 2 +- Python/generated_cases.c.h | 2 +- 4 files changed, 7 insertions(+), 4 deletions(-) diff --git a/Objects/listobject.c b/Objects/listobject.c index bc71466103a621..cf5af72fffd2e8 100644 --- a/Objects/listobject.c +++ b/Objects/listobject.c @@ -3206,7 +3206,10 @@ _PyList_FromTaggedArraySteal(_Py_TaggedObject const *src, Py_ssize_t n) } PyObject **dst = list->ob_item; - memcpy(dst, src, n * sizeof(PyObject *)); + for (Py_ssize_t i = 0; i < n; i++) { + PyObject *item = Py_CLEAR_TAG(src[i]); + dst[i] = item; + } return (PyObject *)list; } diff --git a/Python/bytecodes.c b/Python/bytecodes.c index 8377291d4c370d..303c45c4626294 100644 --- a/Python/bytecodes.c +++ b/Python/bytecodes.c @@ -1684,7 +1684,7 @@ dummy_func( assert(PyTuple_GET_SIZE(keys) == (Py_ssize_t)oparg); map = _PyDict_FromTaggedItems( &PyTuple_GET_ITEM(keys, 0), 1, - (PyObject **)(values), 1, oparg); + values, 1, oparg); DECREF_INPUTS(); ERROR_IF(map == NULL, error); } diff --git a/Python/executor_cases.c.h b/Python/executor_cases.c.h index d0e84dd7412395..c6a9df97063536 100644 --- a/Python/executor_cases.c.h +++ b/Python/executor_cases.c.h @@ -1575,7 +1575,7 @@ assert(PyTuple_GET_SIZE(keys) == (Py_ssize_t)oparg); map = _PyDict_FromTaggedItems( &PyTuple_GET_ITEM(keys, 0), 1, - (PyObject **)(values), 1, oparg); + values, 1, oparg); for (int _i = oparg; --_i >= 0;) { Py_DECREF(Py_CLEAR_TAG(values[_i])); } diff --git a/Python/generated_cases.c.h b/Python/generated_cases.c.h index c450767fe8406a..daba98e1891631 100644 --- a/Python/generated_cases.c.h +++ b/Python/generated_cases.c.h @@ -611,7 +611,7 @@ assert(PyTuple_GET_SIZE(keys) == (Py_ssize_t)oparg); map = _PyDict_FromTaggedItems( &PyTuple_GET_ITEM(keys, 0), 1, - (PyObject **)(values), 1, oparg); + values, 1, oparg); for (int _i = oparg; --_i >= 0;) { Py_DECREF(Py_CLEAR_TAG(values[_i])); }