Commit e4b83e01 authored by Mark Dickinson's avatar Mark Dickinson

Issue #8627: Fix "XXX undetected error" from unchecked PyErr_WarnPy3k return.

This is just a quick fix:  if the warning is turned into an exception, the
exception simply gets ignored.
parent e37d75fc
...@@ -13,7 +13,10 @@ Core and Builtins ...@@ -13,7 +13,10 @@ Core and Builtins
----------------- -----------------
- Issue #8627: Remove bogus "Overriding __cmp__ blocks inheritance of - Issue #8627: Remove bogus "Overriding __cmp__ blocks inheritance of
__hash__ in 3.x" warning. __hash__ in 3.x" warning. Also fix "XXX undetected error" that
arises from the "Overriding __eq__ blocks inheritance ..." warning
when turned into an exception: in this case the exception simply
gets ignored.
- Issue #8748: Fix two issues with comparisons between complex and integer - Issue #8748: Fix two issues with comparisons between complex and integer
objects. (1) The comparison could incorrectly return True in some cases objects. (1) The comparison could incorrectly return True in some cases
......
...@@ -3869,10 +3869,16 @@ inherit_slots(PyTypeObject *type, PyTypeObject *base) ...@@ -3869,10 +3869,16 @@ inherit_slots(PyTypeObject *type, PyTypeObject *base)
(base->tp_hash != PyObject_HashNotImplemented) && (base->tp_hash != PyObject_HashNotImplemented) &&
!OVERRIDES_HASH(type)) { !OVERRIDES_HASH(type)) {
if (OVERRIDES_EQ(type)) { if (OVERRIDES_EQ(type)) {
PyErr_WarnPy3k("Overriding " if (PyErr_WarnPy3k("Overriding "
"__eq__ blocks inheritance " "__eq__ blocks inheritance "
"of __hash__ in 3.x", "of __hash__ in 3.x",
1); 1) < 0)
/* XXX This isn't right. If the warning is turned
into an exception, we should be communicating
the error back to the caller, but figuring out
how to clean-up in that case is tricky. See
issue 8627 for more. */
PyErr_Clear();
} }
} }
} }
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment