[Python-checkins] bpo-31091: Remove dead code in PyErr_GivenExceptionMatches(). (#2963)
Serhiy Storchaka
webhook-mailer at python.org
Mon Jul 31 16:27:51 EDT 2017
https://github.com/python/cpython/commit/e4c06bcca358c6dcb6393a75a1589ff6a2d45cde
commit: e4c06bcca358c6dcb6393a75a1589ff6a2d45cde
branch: master
author: scoder <stefan_ml at behnel.de>
committer: Serhiy Storchaka <storchaka at gmail.com>
date: 2017-07-31T23:27:46+03:00
summary:
bpo-31091: Remove dead code in PyErr_GivenExceptionMatches(). (#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.
files:
M Python/errors.c
diff --git a/Python/errors.c b/Python/errors.c
index 3785e6981c6..261dd7b27cb 100644
--- a/Python/errors.c
+++ b/Python/errors.c
@@ -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;
More information about the Python-checkins
mailing list