File tree Expand file tree Collapse file tree
Expand file tree Collapse file tree Original file line number Diff line number Diff line change @@ -900,11 +900,9 @@ PyObject_ClearWeakRefs(PyObject *object)
900900 if (* list != NULL ) {
901901 PyWeakReference * current = * list ;
902902 Py_ssize_t count = _PyWeakref_GetWeakrefCount (current );
903- int restore_error = PyErr_Occurred () ? 1 : 0 ;
904903 PyObject * err_type , * err_value , * err_tb ;
905904
906- if (restore_error )
907- PyErr_Fetch (& err_type , & err_value , & err_tb );
905+ PyErr_Fetch (& err_type , & err_value , & err_tb );
908906 if (count == 1 ) {
909907 PyObject * callback = current -> wr_callback ;
910908
@@ -922,8 +920,7 @@ PyObject_ClearWeakRefs(PyObject *object)
922920
923921 tuple = PyTuple_New (count * 2 );
924922 if (tuple == NULL ) {
925- if (restore_error )
926- PyErr_Fetch (& err_type , & err_value , & err_tb );
923+ _PyErr_ChainExceptions (err_type , err_value , err_tb );
927924 return ;
928925 }
929926
@@ -954,7 +951,7 @@ PyObject_ClearWeakRefs(PyObject *object)
954951 }
955952 Py_DECREF (tuple );
956953 }
957- if ( restore_error )
958- PyErr_Restore (err_type , err_value , err_tb );
954+ assert (! PyErr_Occurred ());
955+ PyErr_Restore (err_type , err_value , err_tb );
959956 }
960957}
You can’t perform that action at this time.
0 commit comments