Import GNU Classpath (classpath-0_97_2-release).
libjava/ 2008-06-28 Matthias Klose <doko@ubuntu.com> Import GNU Classpath (classpath-0_97_2-release). * Regenerate class and header files. * Regenerate auto* files. * gcj/javaprims.h: Define jobjectRefType. * jni.cc (_Jv_JNI_GetObjectRefType): New (stub only). (_Jv_JNIFunctions): Initialize GetObjectRefType. * gnu/classpath/jdwp/VMVirtualMachine.java, java/security/VMSecureRandom.java: Merge from classpath. * HACKING: Fix typo. * ChangeLog-2007: New file. * configure.ac: Set JAVAC, pass --disable-regen-headers to classpath. libjava/classpath/ 2008-06-28 Matthias Klose <doko@ubuntu.com> * m4/ac_prog_javac.m4: Disable check for JAVAC, when not configured with --enable-java-maintainer-mode. * aclocal.m4, configure: Regenerate. * native/jni/gstreamer-peer/Makefile.am: Do not link with libclasspathnative. * native/jni/gstreamer-peer/Makefile.in: Regenerate. * tools/Makefile.am, lib/Makefile.am: Use JAVAC for setting JCOMPILER, drop flags not understood by gcj. From-SVN: r137223
This commit is contained in:
parent
15c151967d
commit
e0441a5bfb
1429 changed files with 32837 additions and 18119 deletions
|
@ -518,7 +518,10 @@ public final class Double extends Number implements Comparable<Double>
|
|||
*/
|
||||
public static long doubleToLongBits(double value)
|
||||
{
|
||||
return VMDouble.doubleToLongBits(value);
|
||||
if (isNaN(value))
|
||||
return 0x7ff8000000000000L;
|
||||
else
|
||||
return VMDouble.doubleToRawLongBits(value);
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -587,16 +590,25 @@ public final class Double extends Number implements Comparable<Double>
|
|||
*/
|
||||
public static int compare(double x, double y)
|
||||
{
|
||||
if (isNaN(x))
|
||||
return isNaN(y) ? 0 : 1;
|
||||
if (isNaN(y))
|
||||
return -1;
|
||||
// recall that 0.0 == -0.0, so we convert to infinites and try again
|
||||
if (x == 0 && y == 0)
|
||||
return (int) (1 / x - 1 / y);
|
||||
if (x == y)
|
||||
return 0;
|
||||
// handle the easy cases:
|
||||
if (x < y)
|
||||
return -1;
|
||||
if (x > y)
|
||||
return 1;
|
||||
|
||||
return x > y ? 1 : -1;
|
||||
// handle equality respecting that 0.0 != -0.0 (hence not using x == y):
|
||||
long lx = doubleToRawLongBits(x);
|
||||
long ly = doubleToRawLongBits(y);
|
||||
if (lx == ly)
|
||||
return 0;
|
||||
|
||||
// handle NaNs:
|
||||
if (x != x)
|
||||
return (y != y) ? 0 : 1;
|
||||
else if (y != y)
|
||||
return -1;
|
||||
|
||||
// handle +/- 0.0
|
||||
return (lx < ly) ? -1 : 1;
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue