gh-129354: Use PyErr_FormatUnraisable() function (#129523)

Replace PyErr_WriteUnraisable() with PyErr_FormatUnraisable().

Update tests:

* test_coroutines
* test_exceptions
* test_generators
* test_struct
This commit is contained in:
Victor Stinner 2025-02-05 11:31:59 +01:00 committed by GitHub
parent dc804ffb2f
commit a25042e6d2
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
7 changed files with 42 additions and 17 deletions

View file

@ -97,8 +97,10 @@ _PyGen_Finalize(PyObject *self)
PyObject *res = PyObject_CallOneArg(finalizer, self);
if (res == NULL) {
PyErr_WriteUnraisable(self);
} else {
PyErr_FormatUnraisable("Exception ignored while "
"finalizing generator %R", self);
}
else {
Py_DECREF(res);
}
/* Restore the saved exception. */
@ -122,7 +124,8 @@ _PyGen_Finalize(PyObject *self)
PyObject *res = gen_close((PyObject*)gen, NULL);
if (res == NULL) {
if (PyErr_Occurred()) {
PyErr_WriteUnraisable(self);
PyErr_FormatUnraisable("Exception ignored while "
"closing generator %R", self);
}
}
else {
@ -338,7 +341,8 @@ gen_close_iter(PyObject *yf)
else {
PyObject *meth;
if (PyObject_GetOptionalAttr(yf, &_Py_ID(close), &meth) < 0) {
PyErr_WriteUnraisable(yf);
PyErr_FormatUnraisable("Exception ignored while "
"closing generator %R", yf);
}
if (meth) {
retval = _PyObject_CallNoArgs(meth);