mirror of
				https://github.com/python/cpython.git
				synced 2025-10-30 21:21:22 +00:00 
			
		
		
		
	Clean up after bpo-33738. (GH-7627)
* Add declarations even if they are overridden by macros. * Make the declaration and the definition of PyExceptionClass_Name consistent.
This commit is contained in:
		
							parent
							
								
									9d6171ded5
								
							
						
					
					
						commit
						5cbefa9919
					
				
					 4 changed files with 6 additions and 9 deletions
				
			
		|  | @ -593,12 +593,11 @@ PyAPI_FUNC(PyObject *) PyObject_GetIter(PyObject *); | ||||||
| /* Returns 1 if the object 'obj' provides iterator protocols, and 0 otherwise.
 | /* Returns 1 if the object 'obj' provides iterator protocols, and 0 otherwise.
 | ||||||
| 
 | 
 | ||||||
|    This function always succeeds. */ |    This function always succeeds. */ | ||||||
|  | PyAPI_FUNC(int) PyIter_Check(PyObject *); | ||||||
| #ifndef Py_LIMITED_API | #ifndef Py_LIMITED_API | ||||||
| #define PyIter_Check(obj) \ | #define PyIter_Check(obj) \ | ||||||
|     ((obj)->ob_type->tp_iternext != NULL && \ |     ((obj)->ob_type->tp_iternext != NULL && \ | ||||||
|      (obj)->ob_type->tp_iternext != &_PyObject_NextNotImplemented) |      (obj)->ob_type->tp_iternext != &_PyObject_NextNotImplemented) | ||||||
| #else |  | ||||||
| PyAPI_FUNC(int) PyIter_Check(PyObject *); |  | ||||||
| #endif | #endif | ||||||
| 
 | 
 | ||||||
| /* Takes an iterator object and calls its tp_iternext slot,
 | /* Takes an iterator object and calls its tp_iternext slot,
 | ||||||
|  | @ -719,12 +718,11 @@ PyAPI_FUNC(PyObject *) PyNumber_Or(PyObject *o1, PyObject *o2); | ||||||
| 
 | 
 | ||||||
| /* Returns 1 if obj is an index integer (has the nb_index slot of the
 | /* Returns 1 if obj is an index integer (has the nb_index slot of the
 | ||||||
|    tp_as_number structure filled in), and 0 otherwise. */ |    tp_as_number structure filled in), and 0 otherwise. */ | ||||||
|  | PyAPI_FUNC(int) PyIndex_Check(PyObject *); | ||||||
| #ifndef Py_LIMITED_API | #ifndef Py_LIMITED_API | ||||||
| #define PyIndex_Check(obj)                              \ | #define PyIndex_Check(obj)                              \ | ||||||
|     ((obj)->ob_type->tp_as_number != NULL &&            \ |     ((obj)->ob_type->tp_as_number != NULL &&            \ | ||||||
|      (obj)->ob_type->tp_as_number->nb_index != NULL) |      (obj)->ob_type->tp_as_number->nb_index != NULL) | ||||||
| #else |  | ||||||
| PyAPI_FUNC(int) PyIndex_Check(PyObject *); |  | ||||||
| #endif | #endif | ||||||
| 
 | 
 | ||||||
| /* Returns the object 'o' converted to a Python int, or NULL with an exception
 | /* Returns the object 'o' converted to a Python int, or NULL with an exception
 | ||||||
|  |  | ||||||
|  | @ -140,11 +140,10 @@ PyAPI_FUNC(void) _PyErr_ChainExceptions(PyObject *, PyObject *, PyObject *); | ||||||
| #define PyExceptionInstance_Check(x)                    \ | #define PyExceptionInstance_Check(x)                    \ | ||||||
|     PyType_FastSubclass((x)->ob_type, Py_TPFLAGS_BASE_EXC_SUBCLASS) |     PyType_FastSubclass((x)->ob_type, Py_TPFLAGS_BASE_EXC_SUBCLASS) | ||||||
| 
 | 
 | ||||||
|  | PyAPI_FUNC(char *) PyExceptionClass_Name(PyObject *); | ||||||
| #ifndef Py_LIMITED_API | #ifndef Py_LIMITED_API | ||||||
| #define PyExceptionClass_Name(x) \ | #define PyExceptionClass_Name(x) \ | ||||||
|      ((char *)(((PyTypeObject *)(x))->tp_name)) |      ((char *)(((PyTypeObject *)(x))->tp_name)) | ||||||
| #else |  | ||||||
|      PyAPI_FUNC(const char *) PyExceptionClass_Name(PyObject *); |  | ||||||
| #endif | #endif | ||||||
| 
 | 
 | ||||||
| #define PyExceptionInstance_Class(x) ((PyObject*)((x)->ob_type)) | #define PyExceptionInstance_Class(x) ((PyObject*)((x)->ob_type)) | ||||||
|  |  | ||||||
|  | @ -1,4 +1,4 @@ | ||||||
| Seven macro incompatibilities with the Limited API were fixed, and the | Seven macro incompatibilities with the Limited API were fixed, and the | ||||||
| macros PyIter_Check, PyIndex_Check and PyExceptionClass_Name were added as | macros :c:func:`PyIter_Check`, :c:func:`PyIndex_Check` and | ||||||
| functions. The return type of PyExceptionClass_Name is "const char \*". | :c:func:`PyExceptionClass_Name` were added as functions. | ||||||
| A script for automatic macro checks was added. | A script for automatic macro checks was added. | ||||||
|  |  | ||||||
|  | @ -347,7 +347,7 @@ PyException_SetContext(PyObject *self, PyObject *context) | ||||||
| char * | char * | ||||||
| PyExceptionClass_Name(PyObject *ob) | PyExceptionClass_Name(PyObject *ob) | ||||||
| { | { | ||||||
|     return ((PyTypeObject*)ob)->tp_name; |     return (char *)((PyTypeObject*)ob)->tp_name; | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| static struct PyMemberDef BaseException_members[] = { | static struct PyMemberDef BaseException_members[] = { | ||||||
|  |  | ||||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue
	
	 Serhiy Storchaka
						Serhiy Storchaka