Commit 8ac6539d authored by Victor Stinner's avatar Victor Stinner Committed by GitHub

bpo-35081: Add _PyTuple_CAST() (GH-10704)

parent 15869581
...@@ -55,15 +55,18 @@ PyAPI_FUNC(void) _PyTuple_MaybeUntrack(PyObject *); ...@@ -55,15 +55,18 @@ PyAPI_FUNC(void) _PyTuple_MaybeUntrack(PyObject *);
/* Macro, trading safety for speed */ /* Macro, trading safety for speed */
#ifndef Py_LIMITED_API #ifndef Py_LIMITED_API
#define PyTuple_GET_ITEM(op, i) (((PyTupleObject *)(op))->ob_item[i]) /* Cast argument to PyTupleObject* type. */
#define PyTuple_GET_SIZE(op) (assert(PyTuple_Check(op)),Py_SIZE(op)) #define _PyTuple_CAST(op) ((PyTupleObject *)(op))
#define PyTuple_GET_ITEM(op, i) (_PyTuple_CAST(op)->ob_item[i])
#define PyTuple_GET_SIZE(op) (assert(PyTuple_Check(op)), Py_SIZE(op))
#ifdef Py_BUILD_CORE #ifdef Py_BUILD_CORE
# define _PyTuple_ITEMS(op) ((((PyTupleObject *)(op))->ob_item)) # define _PyTuple_ITEMS(op) (_PyTuple_CAST(op)->ob_item)
#endif #endif
/* Macro, *only* to be used to fill in brand new tuples */ /* Macro, *only* to be used to fill in brand new tuples */
#define PyTuple_SET_ITEM(op, i, v) (((PyTupleObject *)(op))->ob_item[i] = v) #define PyTuple_SET_ITEM(op, i, v) (_PyTuple_CAST(op)->ob_item[i] = v)
#endif #endif
PyAPI_FUNC(int) PyTuple_ClearFreeList(void); PyAPI_FUNC(int) PyTuple_ClearFreeList(void);
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment