summaryrefslogtreecommitdiffstats
path: root/Modules/_testcapi/watchers.c
diff options
context:
space:
mode:
Diffstat (limited to 'Modules/_testcapi/watchers.c')
-rw-r--r--Modules/_testcapi/watchers.c14
1 files changed, 6 insertions, 8 deletions
diff --git a/Modules/_testcapi/watchers.c b/Modules/_testcapi/watchers.c
index 2e8fe1d..d9ace63 100644
--- a/Modules/_testcapi/watchers.c
+++ b/Modules/_testcapi/watchers.c
@@ -389,16 +389,15 @@ allocate_too_many_code_watchers(PyObject *self, PyObject *args)
watcher_ids[i] = watcher_id;
num_watchers++;
}
- PyObject *type, *value, *traceback;
- PyErr_Fetch(&type, &value, &traceback);
+ PyObject *exc = PyErr_GetRaisedException();
for (int i = 0; i < num_watchers; i++) {
if (PyCode_ClearWatcher(watcher_ids[i]) < 0) {
PyErr_WriteUnraisable(Py_None);
break;
}
}
- if (type) {
- PyErr_Restore(type, value, traceback);
+ if (exc) {
+ PyErr_SetRaisedException(exc);
return NULL;
}
else if (PyErr_Occurred()) {
@@ -578,16 +577,15 @@ allocate_too_many_func_watchers(PyObject *self, PyObject *args)
watcher_ids[i] = watcher_id;
num_watchers++;
}
- PyObject *type, *value, *traceback;
- PyErr_Fetch(&type, &value, &traceback);
+ PyObject *exc = PyErr_GetRaisedException();
for (int i = 0; i < num_watchers; i++) {
if (PyFunction_ClearWatcher(watcher_ids[i]) < 0) {
PyErr_WriteUnraisable(Py_None);
break;
}
}
- if (type) {
- PyErr_Restore(type, value, traceback);
+ if (exc) {
+ PyErr_SetRaisedException(exc);
return NULL;
}
else if (PyErr_Occurred()) {