From f06a83c0b2f7761510836194a6c9a8a72000937c Mon Sep 17 00:00:00 2001 From: Matthias Klose Date: Sat, 4 Aug 2007 10:53:49 +0000 Subject: Import GNU Classpath (libgcj-import-20070727). libjava/ 2007-08-04 Matthias Klose Import GNU Classpath (libgcj-import-20070727). * Regenerate class and header files. * Regenerate auto* files. * include/jvm.h: * jni-libjvm.cc (Jv_JNI_InvokeFunctions): Rename type. * jni.cc (_Jv_JNIFunctions, _Jv_JNI_InvokeFunctions): Likewise. * jni.cc (_Jv_JNI_CallAnyMethodA, _Jv_JNI_CallAnyVoidMethodA, _Jv_JNI_CallMethodA, _Jv_JNI_CallVoidMethodA, _Jv_JNI_CallStaticMethodA, _Jv_JNI_CallStaticVoidMethodA, _Jv_JNI_NewObjectA, _Jv_JNI_SetPrimitiveArrayRegion): Constify jvalue parameter. * java/lang/reflect/natMethod.cc (_Jv_CallAnyMethodA): Likewise. * java/lang/VMFloat.java (toString, parseFloat): New. * gnu/awt/xlib/XToolkit.java (setAlwaysOnTop, isModalityTypeSupported, isModalExclusionTypeSupported): New (stub only). * gnu/awt/xlib/XCanvasPeer.java (requestFocus): Likewise. * gnu/awt/xlib/XFramePeer.java (updateMinimumSize, updateIconImages, updateFocusableWindowState, setModalBlocked, getBoundsPrivate, setAlwaysOnTop): Likewise. * gnu/awt/xlib/XFontPeer.java (canDisplay): Update signature. * scripts/makemake.tcl: Ignore gnu/javax/sound/sampled/gstreamer, ignore javax.sound.sampled.spi.MixerProvider, ignore .in files. * HACKING: Mention --enable-gstreamer-peer, removal of generated files. libjava/classpath/ 2007-08-04 Matthias Klose * java/util/EnumMap.java (clone): Add cast. From-SVN: r127204 --- libjava/classpath/java/lang/Float.java | 10 ++++------ libjava/classpath/java/lang/Integer.java | 7 +++++-- libjava/classpath/java/lang/reflect/Array.java | 11 +++++------ 3 files changed, 14 insertions(+), 14 deletions(-) (limited to 'libjava/classpath/java/lang') diff --git a/libjava/classpath/java/lang/Float.java b/libjava/classpath/java/lang/Float.java index 1e85922..dc39ec2 100644 --- a/libjava/classpath/java/lang/Float.java +++ b/libjava/classpath/java/lang/Float.java @@ -181,7 +181,7 @@ public final class Float extends Number implements Comparable */ public static String toString(float f) { - return VMDouble.toString(f, true); + return VMFloat.toString(f); } /** @@ -331,9 +331,9 @@ public final class Float extends Number implements Comparable * * @param str the String to convert * @return the float value of s - * @throws NumberFormatException if s cannot be parsed as a + * @throws NumberFormatException if str cannot be parsed as a * float - * @throws NullPointerException if s is null + * @throws NullPointerException if str is null * @see #MIN_VALUE * @see #MAX_VALUE * @see #POSITIVE_INFINITY @@ -342,9 +342,7 @@ public final class Float extends Number implements Comparable */ public static float parseFloat(String str) { - // XXX Rounding parseDouble() causes some errors greater than 1 ulp from - // the infinitely precise decimal. - return (float) Double.parseDouble(str); + return VMFloat.parseFloat(str); } /** diff --git a/libjava/classpath/java/lang/Integer.java b/libjava/classpath/java/lang/Integer.java index e38eb53..62907ff 100644 --- a/libjava/classpath/java/lang/Integer.java +++ b/libjava/classpath/java/lang/Integer.java @@ -705,10 +705,13 @@ public final class Integer extends Number implements Comparable if (len == 0) throw new NumberFormatException("string length is null"); int ch = str.charAt(index); - if (ch == '-') + if (ch == '-' || ch == '+') { if (len == 1) - throw new NumberFormatException("pure '-'"); + if (ch == '-') + throw new NumberFormatException("pure '-'"); + else if (ch == '+') + throw new NumberFormatException("pure '+'"); isNeg = true; ch = str.charAt(++index); } diff --git a/libjava/classpath/java/lang/reflect/Array.java b/libjava/classpath/java/lang/reflect/Array.java index 373bf20..fee9f01 100644 --- a/libjava/classpath/java/lang/reflect/Array.java +++ b/libjava/classpath/java/lang/reflect/Array.java @@ -147,8 +147,7 @@ public final class Array { if (dimensions.length <= 0) throw new IllegalArgumentException ("Empty dimensions array."); - return createMultiArray(componentType, dimensions, - dimensions.length - 1); + return createMultiArray(componentType, dimensions, 0); } /** @@ -638,10 +637,10 @@ public final class Array private static Object createMultiArray(Class type, int[] dimensions, int index) { - if (index == 0) - return newInstance(type, dimensions[0]); + if (index == dimensions.length - 1) + return newInstance(type, dimensions[index]); - Object toAdd = createMultiArray(type, dimensions, index - 1); + Object toAdd = createMultiArray(type, dimensions, index + 1); Class thisType = toAdd.getClass(); Object[] retval = (Object[]) VMArray.createObjectArray(thisType, dimensions[index]); @@ -649,7 +648,7 @@ public final class Array retval[0] = toAdd; int i = dimensions[index]; while (--i > 0) - retval[i] = createMultiArray(type, dimensions, index - 1); + retval[i] = createMultiArray(type, dimensions, index + 1); return retval; } -- cgit v1.1