Merge
authormduigou
Thu, 16 Jan 2014 16:41:34 -0800
changeset 22292 9224952a7bbe
parent 22291 6106c1f013f1 (current diff)
parent 22290 6d4551cf4b3e (diff)
child 22293 9a913cb32aae
child 22344 d0620a18ef9b
Merge
--- a/jdk/src/share/classes/java/lang/Double.java	Wed Dec 11 15:27:06 2013 -0800
+++ b/jdk/src/share/classes/java/lang/Double.java	Thu Jan 16 16:41:34 2014 -0800
@@ -833,14 +833,10 @@
      * @return the bits that represent the floating-point number.
      */
     public static long doubleToLongBits(double value) {
-        long result = doubleToRawLongBits(value);
-        // Check for NaN based on values of bit fields, maximum
-        // exponent and nonzero significand.
-        if ( ((result & DoubleConsts.EXP_BIT_MASK) ==
-              DoubleConsts.EXP_BIT_MASK) &&
-             (result & DoubleConsts.SIGNIF_BIT_MASK) != 0L)
-            result = 0x7ff8000000000000L;
-        return result;
+        if (!isNaN(value)) {
+            return doubleToRawLongBits(value);
+        }
+        return 0x7ff8000000000000L;
     }
 
     /**
--- a/jdk/src/share/classes/java/lang/Float.java	Wed Dec 11 15:27:06 2013 -0800
+++ b/jdk/src/share/classes/java/lang/Float.java	Thu Jan 16 16:41:34 2014 -0800
@@ -741,14 +741,10 @@
      * @return the bits that represent the floating-point number.
      */
     public static int floatToIntBits(float value) {
-        int result = floatToRawIntBits(value);
-        // Check for NaN based on values of bit fields, maximum
-        // exponent and nonzero significand.
-        if ( ((result & FloatConsts.EXP_BIT_MASK) ==
-              FloatConsts.EXP_BIT_MASK) &&
-             (result & FloatConsts.SIGNIF_BIT_MASK) != 0)
-            result = 0x7fc00000;
-        return result;
+        if (!isNaN(value)) {
+            return floatToRawIntBits(value);
+        }
+        return 0x7fc00000;
     }
 
     /**