mirror of
				https://github.com/python/cpython.git
				synced 2025-11-04 11:49:12 +00:00 
			
		
		
		
	Issue #20500: Note other public APIs with the new assertion
This commit is contained in:
		
							parent
							
								
									0c3949c963
								
							
						
					
					
						commit
						c0bc0b46bb
					
				
					 3 changed files with 18 additions and 7 deletions
				
			
		| 
						 | 
					@ -149,6 +149,9 @@ Object Protocol
 | 
				
			||||||
   representation on success, *NULL* on failure.  This is the equivalent of the
 | 
					   representation on success, *NULL* on failure.  This is the equivalent of the
 | 
				
			||||||
   Python expression ``repr(o)``.  Called by the :func:`repr` built-in function.
 | 
					   Python expression ``repr(o)``.  Called by the :func:`repr` built-in function.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					   .. versionchanged:: 3.4
 | 
				
			||||||
 | 
					      This function now includes a debug assertion to help ensure that it
 | 
				
			||||||
 | 
					      does not silently discard an active exception.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
.. c:function:: PyObject* PyObject_ASCII(PyObject *o)
 | 
					.. c:function:: PyObject* PyObject_ASCII(PyObject *o)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					@ -171,8 +174,8 @@ Object Protocol
 | 
				
			||||||
   and, therefore, by the :func:`print` function.
 | 
					   and, therefore, by the :func:`print` function.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
   .. versionchanged:: 3.4
 | 
					   .. versionchanged:: 3.4
 | 
				
			||||||
      This function now includes a debug assertion that ensures it does not
 | 
					      This function now includes a debug assertion to help ensure that it
 | 
				
			||||||
      silently discard an active exception.
 | 
					      does not silently discard an active exception.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
.. c:function:: PyObject* PyObject_Bytes(PyObject *o)
 | 
					.. c:function:: PyObject* PyObject_Bytes(PyObject *o)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -322,6 +322,10 @@ the same library that the Python runtime is using.
 | 
				
			||||||
   it causes an exception to immediately be thrown; this is used for the
 | 
					   it causes an exception to immediately be thrown; this is used for the
 | 
				
			||||||
   :meth:`~generator.throw` methods of generator objects.
 | 
					   :meth:`~generator.throw` methods of generator objects.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					   .. versionchanged:: 3.4
 | 
				
			||||||
 | 
					      This function now includes a debug assertion to help ensure that it
 | 
				
			||||||
 | 
					      does not silently discard an active exception.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
.. c:function:: int PyEval_MergeCompilerFlags(PyCompilerFlags *cf)
 | 
					.. c:function:: int PyEval_MergeCompilerFlags(PyCompilerFlags *cf)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -1708,12 +1708,16 @@ Changes in the Python API
 | 
				
			||||||
Changes in the C API
 | 
					Changes in the C API
 | 
				
			||||||
--------------------
 | 
					--------------------
 | 
				
			||||||
 | 
					
 | 
				
			||||||
* :c:func:`PyObject_Str` now includes a debug assertion that ensures it will
 | 
					* :c:func:`PyEval_EvalFrameEx`, :c:func:`PyObject_Repr(), and
 | 
				
			||||||
  no longer silently discard currently active exceptions. In cases where
 | 
					  :c:func:`PyObject_Str`, along with some other internal C APIs, now include
 | 
				
			||||||
 | 
					  a debugging assertion that ensures they are not used in situations where
 | 
				
			||||||
 | 
					  they may silently discard a currently active exception. In cases where
 | 
				
			||||||
  discarding the active exception is expected and desired (for example,
 | 
					  discarding the active exception is expected and desired (for example,
 | 
				
			||||||
  because it has already been saved locally with :c:func:`PyErr_Fetch`), an
 | 
					  because it has already been saved locally with :c:func:`PyErr_Fetch` or
 | 
				
			||||||
  explicit :c:func:`PyErr_Clear` call will be needed to avoid triggering the
 | 
					  is being deliberately replaced with a different exception), an explicit
 | 
				
			||||||
  assertion.
 | 
					  :c:func:`PyErr_Clear` call will be needed to avoid triggering the
 | 
				
			||||||
 | 
					  assertion when running against a version of Python that is compiled with
 | 
				
			||||||
 | 
					  assertions enabled.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
* :c:func:`PyErr_SetImportError` now sets :exc:`TypeError` when its **msg**
 | 
					* :c:func:`PyErr_SetImportError` now sets :exc:`TypeError` when its **msg**
 | 
				
			||||||
  argument is not set. Previously only ``NULL`` was returned with no exception
 | 
					  argument is not set. Previously only ``NULL`` was returned with no exception
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue