From: Mark Dickinson Date: Fri, 9 May 2008 16:14:15 +0000 (+0000) Subject: Issue #2801: fix bug in float.is_integer where ValueError X-Git-Tag: v2.6b1~554 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=e81c3760807215a65a69c20701631ee0b8ad774b;p=thirdparty%2FPython%2Fcpython.git Issue #2801: fix bug in float.is_integer where ValueError could be incorrectly raised. This is a backport of the Py3k fix in r62939. (Should really have been fixed in the trunk first and svnmerged into py3k.) --- diff --git a/Misc/NEWS b/Misc/NEWS index 58fd955bf519..12522dbfe680 100644 --- a/Misc/NEWS +++ b/Misc/NEWS @@ -12,6 +12,9 @@ What's New in Python 2.6 beta 1? Core and Builtins ----------------- +- Issue #2801: fix bug in the float.is_integer method where a ValueError + was sometimes incorrectly raised. + - Issue #2790: sys.flags was not properly exposing its bytes_warning attribute. Extension Modules diff --git a/Objects/floatobject.c b/Objects/floatobject.c index f79995cb3f23..ceb0b6dfb86f 100644 --- a/Objects/floatobject.c +++ b/Objects/floatobject.c @@ -1031,6 +1031,7 @@ float_is_integer(PyObject *v) return NULL; if (!Py_IS_FINITE(x)) Py_RETURN_FALSE; + errno = 0; PyFPE_START_PROTECT("is_integer", return NULL) o = (floor(x) == x) ? Py_True : Py_False; PyFPE_END_PROTECT(x)