Skip to content

Commit d83af14

Browse files
committed
Objects/weakrefobject.c
1 parent 8fd66a8 commit d83af14

File tree

1 file changed

+3
-4
lines changed

1 file changed

+3
-4
lines changed

Objects/weakrefobject.c

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -959,9 +959,8 @@ PyObject_ClearWeakRefs(PyObject *object)
959959
if (*list != NULL) {
960960
PyWeakReference *current = *list;
961961
Py_ssize_t count = _PyWeakref_GetWeakrefCount(current);
962-
PyObject *err_type, *err_value, *err_tb;
962+
PyObject *exc = PyErr_GetRaisedException();
963963

964-
PyErr_Fetch(&err_type, &err_value, &err_tb);
965964
if (count == 1) {
966965
PyObject *callback = current->wr_callback;
967966

@@ -980,7 +979,7 @@ PyObject_ClearWeakRefs(PyObject *object)
980979

981980
tuple = PyTuple_New(count * 2);
982981
if (tuple == NULL) {
983-
_PyErr_ChainExceptions(err_type, err_value, err_tb);
982+
_PyErr_ChainExceptions1(exc);
984983
return;
985984
}
986985

@@ -1010,7 +1009,7 @@ PyObject_ClearWeakRefs(PyObject *object)
10101009
Py_DECREF(tuple);
10111010
}
10121011
assert(!PyErr_Occurred());
1013-
PyErr_Restore(err_type, err_value, err_tb);
1012+
PyErr_SetRaisedException(exc);
10141013
}
10151014
}
10161015

0 commit comments

Comments
 (0)