Author: tkreuzer
Date: Sat Sep 27 12:06:03 2014
New Revision: 64338
URL:
http://svn.reactos.org/svn/reactos?rev=64338&view=rev
Log:
[WIN32K]
Fix _FLOATOBJ_IsLong (0 - lMant == 0 / lExp == 0 - was not evaluated as TRUE)
Modified:
trunk/reactos/win32ss/gdi/eng/floatobj.h
Modified: trunk/reactos/win32ss/gdi/eng/floatobj.h
URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/win32ss/gdi/eng/floatobj.h…
==============================================================================
--- trunk/reactos/win32ss/gdi/eng/floatobj.h [iso-8859-1] (original)
+++ trunk/reactos/win32ss/gdi/eng/floatobj.h [iso-8859-1] Sat Sep 27 12:06:03 2014
@@ -33,9 +33,11 @@
_FLOATOBJ_IsLong(FLOATOBJ *pf)
{
EFLOAT_S *pef = (EFLOAT_S*)pf;
- ULONG Shift = 32 - pef->lExp;
- if (Shift > 31) return FALSE;
- return (((pef->lMant >> Shift) << Shift) == pef->lMant);
+ ULONG ulShift = pef->lExp;
+ if (ulShift < 32)
+ return ((pef->lMant << ulShift) == 0);
+ else
+ return (ulShift == 32);
}
FORCEINLINE