Skip to content

Commit

Permalink
bpo-31091: Remove dead code in PyErr_GivenExceptionMatches(). (python…
Browse files Browse the repository at this point in the history
…#2963)

According to the comment, there was previously a call to PyObject_IsSubclass() involved which could fail, but since it was replaced with a call to PyType_IsSubtype(), it can no longer fail.
  • Loading branch information
scoder authored and serhiy-storchaka committed Jul 31, 2017
1 parent 8474d87 commit e4c06bc
Showing 1 changed file with 1 addition and 13 deletions.
14 changes: 1 addition & 13 deletions Python/errors.c
Original file line number Diff line number Diff line change
Expand Up @@ -191,19 +191,7 @@ PyErr_GivenExceptionMatches(PyObject *err, PyObject *exc)
err = PyExceptionInstance_Class(err);

if (PyExceptionClass_Check(err) && PyExceptionClass_Check(exc)) {
int res = 0;
PyObject *exception, *value, *tb;
PyErr_Fetch(&exception, &value, &tb);
/* PyObject_IsSubclass() can recurse and therefore is
not safe (see test_bad_getattr in test.pickletester). */
res = PyType_IsSubtype((PyTypeObject *)err, (PyTypeObject *)exc);
/* This function must not fail, so print the error here */
if (res == -1) {
PyErr_WriteUnraisable(err);
res = 0;
}
PyErr_Restore(exception, value, tb);
return res;
return PyType_IsSubtype((PyTypeObject *)err, (PyTypeObject *)exc);
}

return err == exc;
Expand Down

0 comments on commit e4c06bc

Please sign in to comment.