Alexandre Julliard : msvcrt: Reimplement _finite().

Alexandre Julliard julliard at winehq.org
Mon Nov 16 15:28:57 CST 2020


Module: wine
Branch: master
Commit: 9f088d019bc838946b1a500e41a34c48aae93469
URL:    https://source.winehq.org/git/wine.git/?a=commit;h=9f088d019bc838946b1a500e41a34c48aae93469

Author: Alexandre Julliard <julliard at winehq.org>
Date:   Mon Nov 16 12:17:52 2020 +0100

msvcrt: Reimplement _finite().

Signed-off-by: Alexandre Julliard <julliard at 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;
 }
 
 /*********************************************************************




More information about the wine-cvs mailing list