mirror of
				https://github.com/python/cpython.git
				synced 2025-10-31 21:51:50 +00:00 
			
		
		
		
	 d12d0e7c0f
			
		
	
	
		d12d0e7c0f
		
			
		
	
	
	
	
		
			
			bpo-3605, bpo-38733: Optimize _PyErr_Occurred(): remove "tstate == NULL" test. Py_FatalError() no longer calls PyErr_Occurred() if called without holding the GIL. So PyErr_Occurred() no longer has to support tstate==NULL case. _Py_CheckFunctionResult(): use directly _PyErr_Occurred() to avoid explicit "!= NULL" test.
		
			
				
	
	
		
			71 lines
		
	
	
	
		
			1.5 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			71 lines
		
	
	
	
		
			1.5 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
| #ifndef Py_INTERNAL_PYERRORS_H
 | |
| #define Py_INTERNAL_PYERRORS_H
 | |
| #ifdef __cplusplus
 | |
| extern "C" {
 | |
| #endif
 | |
| 
 | |
| #ifndef Py_BUILD_CORE
 | |
| #  error "this header requires Py_BUILD_CORE define"
 | |
| #endif
 | |
| 
 | |
| static inline PyObject* _PyErr_Occurred(PyThreadState *tstate)
 | |
| {
 | |
|     assert(tstate != NULL);
 | |
|     return tstate->curexc_type;
 | |
| }
 | |
| 
 | |
| 
 | |
| PyAPI_FUNC(void) _PyErr_Fetch(
 | |
|     PyThreadState *tstate,
 | |
|     PyObject **type,
 | |
|     PyObject **value,
 | |
|     PyObject **traceback);
 | |
| 
 | |
| PyAPI_FUNC(int) _PyErr_ExceptionMatches(
 | |
|     PyThreadState *tstate,
 | |
|     PyObject *exc);
 | |
| 
 | |
| PyAPI_FUNC(void) _PyErr_Restore(
 | |
|     PyThreadState *tstate,
 | |
|     PyObject *type,
 | |
|     PyObject *value,
 | |
|     PyObject *traceback);
 | |
| 
 | |
| PyAPI_FUNC(void) _PyErr_SetObject(
 | |
|     PyThreadState *tstate,
 | |
|     PyObject *type,
 | |
|     PyObject *value);
 | |
| 
 | |
| PyAPI_FUNC(void) _PyErr_Clear(PyThreadState *tstate);
 | |
| 
 | |
| PyAPI_FUNC(void) _PyErr_SetNone(PyThreadState *tstate, PyObject *exception);
 | |
| 
 | |
| PyAPI_FUNC(PyObject *) _PyErr_NoMemory(PyThreadState *tstate);
 | |
| 
 | |
| PyAPI_FUNC(void) _PyErr_SetString(
 | |
|     PyThreadState *tstate,
 | |
|     PyObject *exception,
 | |
|     const char *string);
 | |
| 
 | |
| PyAPI_FUNC(PyObject *) _PyErr_Format(
 | |
|     PyThreadState *tstate,
 | |
|     PyObject *exception,
 | |
|     const char *format,
 | |
|     ...);
 | |
| 
 | |
| PyAPI_FUNC(void) _PyErr_NormalizeException(
 | |
|     PyThreadState *tstate,
 | |
|     PyObject **exc,
 | |
|     PyObject **val,
 | |
|     PyObject **tb);
 | |
| 
 | |
| PyAPI_FUNC(PyObject *) _PyErr_FormatFromCauseTstate(
 | |
|     PyThreadState *tstate,
 | |
|     PyObject *exception,
 | |
|     const char *format,
 | |
|     ...);
 | |
| 
 | |
| #ifdef __cplusplus
 | |
| }
 | |
| #endif
 | |
| #endif /* !Py_INTERNAL_PYERRORS_H */
 |