@@ -389,16 +389,15 @@ allocate_too_many_code_watchers(PyObject *self, PyObject *args)
389
389
watcher_ids [i ] = watcher_id ;
390
390
num_watchers ++ ;
391
391
}
392
- PyObject * type , * value , * traceback ;
393
- PyErr_Fetch (& type , & value , & traceback );
392
+ PyObject * exc = PyErr_GetRaisedException ();
394
393
for (int i = 0 ; i < num_watchers ; i ++ ) {
395
394
if (PyCode_ClearWatcher (watcher_ids [i ]) < 0 ) {
396
395
PyErr_WriteUnraisable (Py_None );
397
396
break ;
398
397
}
399
398
}
400
- if (type ) {
401
- PyErr_Restore ( type , value , traceback );
399
+ if (exc ) {
400
+ PyErr_SetRaisedException ( exc );
402
401
return NULL ;
403
402
}
404
403
else if (PyErr_Occurred ()) {
@@ -578,16 +577,15 @@ allocate_too_many_func_watchers(PyObject *self, PyObject *args)
578
577
watcher_ids [i ] = watcher_id ;
579
578
num_watchers ++ ;
580
579
}
581
- PyObject * type , * value , * traceback ;
582
- PyErr_Fetch (& type , & value , & traceback );
580
+ PyObject * exc = PyErr_GetRaisedException ();
583
581
for (int i = 0 ; i < num_watchers ; i ++ ) {
584
582
if (PyFunction_ClearWatcher (watcher_ids [i ]) < 0 ) {
585
583
PyErr_WriteUnraisable (Py_None );
586
584
break ;
587
585
}
588
586
}
589
- if (type ) {
590
- PyErr_Restore ( type , value , traceback );
587
+ if (exc ) {
588
+ PyErr_SetRaisedException ( exc );
591
589
return NULL ;
592
590
}
593
591
else if (PyErr_Occurred ()) {
0 commit comments