[Python-checkins] r81741 - in python/branches/release26-maint: Misc/NEWS Objects/typeobject.c
mark.dickinson
python-checkins at python.org
Sat Jun 5 14:15:36 CEST 2010
Author: mark.dickinson
Date: Sat Jun 5 14:15:35 2010
New Revision: 81741
Log:
Merged revisions 81740 via svnmerge from
svn+ssh://pythondev@svn.python.org/python/trunk
........
r81740 | mark.dickinson | 2010-06-05 13:14:43 +0100 (Sat, 05 Jun 2010) | 5 lines
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.
........
Modified:
python/branches/release26-maint/ (props changed)
python/branches/release26-maint/Misc/NEWS
python/branches/release26-maint/Objects/typeobject.c
Modified: python/branches/release26-maint/Misc/NEWS
==============================================================================
--- python/branches/release26-maint/Misc/NEWS (original)
+++ python/branches/release26-maint/Misc/NEWS Sat Jun 5 14:15:35 2010
@@ -13,7 +13,10 @@
-----------------
- 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 #3798: Write sys.exit() message to sys.stderr to use stderr encoding
and error handler, instead of writing to the C stderr file in utf-8
Modified: python/branches/release26-maint/Objects/typeobject.c
==============================================================================
--- python/branches/release26-maint/Objects/typeobject.c (original)
+++ python/branches/release26-maint/Objects/typeobject.c Sat Jun 5 14:15:35 2010
@@ -3853,10 +3853,16 @@
(base->tp_hash != PyObject_HashNotImplemented) &&
!OVERRIDES_HASH(type)) {
if (OVERRIDES_EQ(type)) {
- PyErr_WarnPy3k("Overriding "
- "__eq__ blocks inheritance "
- "of __hash__ in 3.x",
- 1);
+ if (PyErr_WarnPy3k("Overriding "
+ "__eq__ blocks inheritance "
+ "of __hash__ in 3.x",
+ 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();
}
}
}
More information about the Python-checkins
mailing list