diff --git a/Doc/api.tex b/Doc/api.tex index 5f168f2f982..b0b7bfd14aa 100644 --- a/Doc/api.tex +++ b/Doc/api.tex @@ -1953,6 +1953,11 @@ Returns a new tuple object containing the contents of \var{list}. Macro form of \cfunction{PyList_GetItem()} without error checking. \end{cfuncdesc} +\begin{cfuncdesc}{PyObject*}{PyList_SET_ITEM}{PyObject *list, int i, + PyObject *o} +Macro form of \cfunction{PyList_SetItem()} without error checking. +\end{cfuncdesc} + \begin{cfuncdesc}{int}{PyList_GET_SIZE}{PyObject *list} Macro form of \cfunction{PyList_GetSize()} without error checking. \end{cfuncdesc} diff --git a/Doc/api/api.tex b/Doc/api/api.tex index 5f168f2f982..b0b7bfd14aa 100644 --- a/Doc/api/api.tex +++ b/Doc/api/api.tex @@ -1953,6 +1953,11 @@ Returns a new tuple object containing the contents of \var{list}. Macro form of \cfunction{PyList_GetItem()} without error checking. \end{cfuncdesc} +\begin{cfuncdesc}{PyObject*}{PyList_SET_ITEM}{PyObject *list, int i, + PyObject *o} +Macro form of \cfunction{PyList_SetItem()} without error checking. +\end{cfuncdesc} + \begin{cfuncdesc}{int}{PyList_GET_SIZE}{PyObject *list} Macro form of \cfunction{PyList_GetSize()} without error checking. \end{cfuncdesc} diff --git a/Include/listobject.h b/Include/listobject.h index c1bbcc17f5e..e99acef1b96 100644 --- a/Include/listobject.h +++ b/Include/listobject.h @@ -74,6 +74,7 @@ extern PyObject *PyList_AsTuple Py_PROTO((PyObject *)); /* Macro, trading safety for speed */ #define PyList_GET_ITEM(op, i) (((PyListObject *)(op))->ob_item[i]) +#define PyList_SET_ITEM(op, i, v) (((PyListObject *)(op))->ob_item[i] = (v)) #define PyList_GET_SIZE(op) (((PyListObject *)(op))->ob_size) #ifdef __cplusplus diff --git a/Python/bltinmodule.c b/Python/bltinmodule.c index 8a4215bad5c..fd31405733d 100644 --- a/Python/bltinmodule.c +++ b/Python/bltinmodule.c @@ -1282,7 +1282,7 @@ builtin_range(self, args) Py_DECREF(v); return NULL; } - PyList_GET_ITEM(v, i) = w; + PyList_SET_ITEM(v, i, w); ilow += istep; } return v;