]> granicus.if.org Git - python/commitdiff
Note the new debug assertion in PyObject_Str
authorNick Coghlan <ncoghlan@gmail.com>
Sun, 9 Feb 2014 00:57:34 +0000 (10:57 +1000)
committerNick Coghlan <ncoghlan@gmail.com>
Sun, 9 Feb 2014 00:57:34 +0000 (10:57 +1000)
Doc/c-api/object.rst
Doc/whatsnew/3.4.rst

index be6d798f631e6f4bc4531db4da6958abce195e52..78c385e8ad27e5f98e71003f2c292a310ac49186 100644 (file)
@@ -170,6 +170,10 @@ Object Protocol
    Python expression ``str(o)``.  Called by the :func:`str` built-in function
    and, therefore, by the :func:`print` function.
 
+   .. versionchanged:: 3.4
+      This function now includes a debug assertion that ensures it does not
+      silently discard an active exception.
+
 .. c:function:: PyObject* PyObject_Bytes(PyObject *o)
 
    .. index:: builtin: bytes
index 91fb03a00c10d6f02b87b3c8f7c03dfa95f02021..5da98daad2e9d545aaf2f285952e09abb1cf9068 100644 (file)
@@ -1708,6 +1708,13 @@ Changes in the Python API
 Changes in the C API
 --------------------
 
+* :c:func:`PyObject_Str` now includes a debug assertion that ensures it will
+  no longer silently discard currently active exceptions. In cases where
+  discarding the active exception is expected and desired (for example,
+  because it has already been saved locally with :c:func:`PyErr_Fetch`), an
+  explicit :c:func:`PyErr_Clear` call will be needed to avoid triggering the
+  assertion.
+
 * :c:func:`PyErr_SetImportError` now sets :exc:`TypeError` when its **msg**
   argument is not set. Previously only ``NULL`` was returned with no exception
   set.