# HG changeset patch # User mduigou # Date 1389919294 28800 # Node ID 9224952a7bbe195b52b7ed6126053145d8af9f7e # Parent 6106c1f013f1fe1f6226392471fba77d589a60c4# Parent 6d4551cf4b3ebf4e2af95668e4e8c42c2620c06e Merge diff -r 6106c1f013f1 -r 9224952a7bbe jdk/src/share/classes/java/lang/Double.java --- 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; } /** diff -r 6106c1f013f1 -r 9224952a7bbe jdk/src/share/classes/java/lang/Float.java --- 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; } /**