mirror of
https://github.com/python/cpython.git
synced 2025-09-27 10:50:04 +00:00
gh-89653: PEP 670: Limited API doesn't cast arguments (#92654)
The limited API version 3.11 no longer casts arguments to expected types of functions of functions: * PyList_GET_SIZE(), PyList_SET_ITEM() * PyTuple_GET_SIZE(), PyTuple_SET_ITEM() * PyWeakref_GET_OBJECT()
This commit is contained in:
parent
eb88f21301
commit
7d3b469e47
3 changed files with 13 additions and 3 deletions
|
@ -33,7 +33,9 @@ PyAPI_FUNC(void) _PyList_DebugMallocStats(FILE *out);
|
||||||
static inline Py_ssize_t PyList_GET_SIZE(PyListObject *op) {
|
static inline Py_ssize_t PyList_GET_SIZE(PyListObject *op) {
|
||||||
return Py_SIZE(op);
|
return Py_SIZE(op);
|
||||||
}
|
}
|
||||||
#define PyList_GET_SIZE(op) PyList_GET_SIZE(_PyList_CAST(op))
|
#if !defined(Py_LIMITED_API) || Py_LIMITED_API+0 < 0x030b0000
|
||||||
|
# define PyList_GET_SIZE(op) PyList_GET_SIZE(_PyList_CAST(op))
|
||||||
|
#endif
|
||||||
|
|
||||||
#define PyList_GET_ITEM(op, index) (_PyList_CAST(op)->ob_item[index])
|
#define PyList_GET_ITEM(op, index) (_PyList_CAST(op)->ob_item[index])
|
||||||
|
|
||||||
|
@ -41,5 +43,7 @@ static inline void
|
||||||
PyList_SET_ITEM(PyListObject *op, Py_ssize_t index, PyObject *value) {
|
PyList_SET_ITEM(PyListObject *op, Py_ssize_t index, PyObject *value) {
|
||||||
op->ob_item[index] = value;
|
op->ob_item[index] = value;
|
||||||
}
|
}
|
||||||
|
#if !defined(Py_LIMITED_API) || Py_LIMITED_API+0 < 0x030b0000
|
||||||
#define PyList_SET_ITEM(op, index, value) \
|
#define PyList_SET_ITEM(op, index, value) \
|
||||||
PyList_SET_ITEM(_PyList_CAST(op), index, _PyObject_CAST(value))
|
PyList_SET_ITEM(_PyList_CAST(op), index, _PyObject_CAST(value))
|
||||||
|
#endif
|
||||||
|
|
|
@ -22,7 +22,9 @@ PyAPI_FUNC(void) _PyTuple_MaybeUntrack(PyObject *);
|
||||||
static inline Py_ssize_t PyTuple_GET_SIZE(PyTupleObject *op) {
|
static inline Py_ssize_t PyTuple_GET_SIZE(PyTupleObject *op) {
|
||||||
return Py_SIZE(op);
|
return Py_SIZE(op);
|
||||||
}
|
}
|
||||||
#define PyTuple_GET_SIZE(op) PyTuple_GET_SIZE(_PyTuple_CAST(op))
|
#if !defined(Py_LIMITED_API) || Py_LIMITED_API+0 < 0x030b0000
|
||||||
|
# define PyTuple_GET_SIZE(op) PyTuple_GET_SIZE(_PyTuple_CAST(op))
|
||||||
|
#endif
|
||||||
|
|
||||||
#define PyTuple_GET_ITEM(op, index) (_PyTuple_CAST(op)->ob_item[index])
|
#define PyTuple_GET_ITEM(op, index) (_PyTuple_CAST(op)->ob_item[index])
|
||||||
|
|
||||||
|
@ -31,7 +33,9 @@ static inline void
|
||||||
PyTuple_SET_ITEM(PyTupleObject *op, Py_ssize_t index, PyObject *value) {
|
PyTuple_SET_ITEM(PyTupleObject *op, Py_ssize_t index, PyObject *value) {
|
||||||
op->ob_item[index] = value;
|
op->ob_item[index] = value;
|
||||||
}
|
}
|
||||||
|
#if !defined(Py_LIMITED_API) || Py_LIMITED_API+0 < 0x030b0000
|
||||||
#define PyTuple_SET_ITEM(op, index, value) \
|
#define PyTuple_SET_ITEM(op, index, value) \
|
||||||
PyTuple_SET_ITEM(_PyTuple_CAST(op), index, _PyObject_CAST(value))
|
PyTuple_SET_ITEM(_PyTuple_CAST(op), index, _PyObject_CAST(value))
|
||||||
|
#endif
|
||||||
|
|
||||||
PyAPI_FUNC(void) _PyTuple_DebugMallocStats(FILE *out);
|
PyAPI_FUNC(void) _PyTuple_DebugMallocStats(FILE *out);
|
||||||
|
|
|
@ -51,4 +51,6 @@ static inline PyObject* PyWeakref_GET_OBJECT(PyObject *ref_obj) {
|
||||||
}
|
}
|
||||||
return Py_None;
|
return Py_None;
|
||||||
}
|
}
|
||||||
#define PyWeakref_GET_OBJECT(ref) PyWeakref_GET_OBJECT(_PyObject_CAST(ref))
|
#if !defined(Py_LIMITED_API) || Py_LIMITED_API+0 < 0x030b0000
|
||||||
|
# define PyWeakref_GET_OBJECT(ref) PyWeakref_GET_OBJECT(_PyObject_CAST(ref))
|
||||||
|
#endif
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue