summaryrefslogtreecommitdiffstats
path: root/Doc/c-api/exceptions.rst
diff options
context:
space:
mode:
Diffstat (limited to 'Doc/c-api/exceptions.rst')
-rw-r--r--Doc/c-api/exceptions.rst12
1 files changed, 9 insertions, 3 deletions
diff --git a/Doc/c-api/exceptions.rst b/Doc/c-api/exceptions.rst
index c7ba74c..a042c6e 100644
--- a/Doc/c-api/exceptions.rst
+++ b/Doc/c-api/exceptions.rst
@@ -715,15 +715,21 @@ recursion depth automatically).
case, a :exc:`RecursionError` is set and a nonzero value is returned.
Otherwise, zero is returned.
- *where* should be a string such as ``" in instance check"`` to be
- concatenated to the :exc:`RecursionError` message caused by the recursion
+ *where* should be a UTF-8 encoded string such as ``" in instance check"`` to
+ be concatenated to the :exc:`RecursionError` message caused by the recursion
depth limit.
-.. c:function:: void Py_LeaveRecursiveCall()
+ .. versionchanged:: 3.9
+ This function is now also available in the limited API.
+
+.. c:function:: void Py_LeaveRecursiveCall(void)
Ends a :c:func:`Py_EnterRecursiveCall`. Must be called once for each
*successful* invocation of :c:func:`Py_EnterRecursiveCall`.
+ .. versionchanged:: 3.9
+ This function is now also available in the limited API.
+
Properly implementing :c:member:`~PyTypeObject.tp_repr` for container types requires
special recursion handling. In addition to protecting the stack,
:c:member:`~PyTypeObject.tp_repr` also needs to track objects to prevent cycles. The