]> git.ipfire.org Git - thirdparty/Python/cpython.git/commitdiff
gh-131117: Update tp_finalize example to use PyErr_GetRaisedException (#131118)
authorCody Maloney <cmaloney@users.noreply.github.com>
Wed, 19 Mar 2025 17:27:55 +0000 (10:27 -0700)
committerGitHub <noreply@github.com>
Wed, 19 Mar 2025 17:27:55 +0000 (18:27 +0100)
The tp_finalize C API doc used PyErr_Fetch() and PyErr_Restore() in
its example code. That API was deprecated in 3.12.

Update to point to the suggested replacement function
PyErr_GetRaisedException() which has a sample usage.

Doc/c-api/typeobj.rst

index c5229d19ca0a6c68f96f634886b742a14c9a1616..51c9f05fd6a80742ca48fd44dc8eecdcb975a3c9 100644 (file)
@@ -2154,15 +2154,13 @@ and :c:data:`PyType_Type` effectively act as defaults.)
       static void
       local_finalize(PyObject *self)
       {
-          PyObject *error_type, *error_value, *error_traceback;
-
           /* Save the current exception, if any. */
-          PyErr_Fetch(&error_type, &error_value, &error_traceback);
+          PyObject *exc = PyErr_GetRaisedException();
 
           /* ... */
 
           /* Restore the saved exception. */
-          PyErr_Restore(error_type, error_value, error_traceback);
+          PyErr_SetRaisedException(exc);
       }
 
    **Inheritance:**