Module: wine Branch: master Commit: 9f088d019bc838946b1a500e41a34c48aae93469 URL: https://source.winehq.org/git/wine.git/?a=commit;h=9f088d019bc838946b1a500e4...
Author: Alexandre Julliard julliard@winehq.org Date: Mon Nov 16 12:17:52 2020 +0100
msvcrt: Reimplement _finite().
Signed-off-by: Alexandre Julliard julliard@winehq.org
---
dlls/msvcrt/math.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-)
diff --git a/dlls/msvcrt/math.c b/dlls/msvcrt/math.c index aa0c6f2f3de..94a20e663fe 100644 --- a/dlls/msvcrt/math.c +++ b/dlls/msvcrt/math.c @@ -235,7 +235,8 @@ int CDECL MSVCRT__fpclassf( float num ) */ int CDECL MSVCRT__finitef( float num ) { - return finitef(num) != 0; /* See comment for _isnan() */ + union { float f; UINT32 i; } u = { num }; + return (u.i & 0x7fffffff) < 0x7f800000; }
/********************************************************************* @@ -2138,7 +2139,8 @@ double CDECL MSVCRT__copysign(double num, double sign) */ int CDECL MSVCRT__finite(double num) { - return isfinite(num) != 0; /* See comment for _isnan() */ + union { double f; UINT64 i; } u = { num }; + return (u.i & ~0ull >> 1) < 0x7ffull << 52; }
/*********************************************************************