--- java/lang/Float.java Fri Oct 12 14:37:56 2001 +++ ../gcc-3-1/libjava/java/lang/Float.java Fri Oct 12 14:33:38 2001 @@ -221,7 +221,12 @@ */ public boolean equals (Object obj) { - return (obj instanceof Float && ((Float) obj).value == value); + if (!(obj instanceof Float)) + return false; + + Float f = (Float) obj; + + return floatToIntBits (value) == floatToIntBits (f.floatValue ()); } /** @@ -359,7 +364,11 @@ */ public static boolean isNaN (float v) { - return (floatToIntBits (v) == 0x7fc00000); + int bits = floatToIntBits (v); + int e = bits & 0x7f800000; + int f = bits & 0x007fffff; + + return e == 0x7f800000 && f != 0; } /** @@ -384,7 +393,10 @@ */ public static boolean isInfinite (float v) { - return (v == POSITIVE_INFINITY || v == NEGATIVE_INFINITY); + int bits = floatToIntBits (v); + int f = bits & 0x7fffffff; + + return f == 0x7f800000; } /**