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