mirror of
				https://github.com/python/cpython.git
				synced 2025-10-31 02:15:10 +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) { | ||||
|     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]) | ||||
| 
 | ||||
|  | @ -41,5 +43,7 @@ static inline void | |||
| PyList_SET_ITEM(PyListObject *op, Py_ssize_t index, PyObject *value) { | ||||
|     op->ob_item[index] = value; | ||||
| } | ||||
| #if !defined(Py_LIMITED_API) || Py_LIMITED_API+0 < 0x030b0000 | ||||
| #define PyList_SET_ITEM(op, index, 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) { | ||||
|     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]) | ||||
| 
 | ||||
|  | @ -31,7 +33,9 @@ static inline void | |||
| PyTuple_SET_ITEM(PyTupleObject *op, Py_ssize_t index, PyObject *value) { | ||||
|     op->ob_item[index] = value; | ||||
| } | ||||
| #if !defined(Py_LIMITED_API) || Py_LIMITED_API+0 < 0x030b0000 | ||||
| #define PyTuple_SET_ITEM(op, index, value) \ | ||||
|     PyTuple_SET_ITEM(_PyTuple_CAST(op), index, _PyObject_CAST(value)) | ||||
| #endif | ||||
| 
 | ||||
| PyAPI_FUNC(void) _PyTuple_DebugMallocStats(FILE *out); | ||||
|  |  | |||
|  | @ -51,4 +51,6 @@ static inline PyObject* PyWeakref_GET_OBJECT(PyObject *ref_obj) { | |||
|     } | ||||
|     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
	
	 Victor Stinner
						Victor Stinner