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 --- .../vm/reference/gnu/classpath/jdwp/VMFrame.java | 5 ++++- .../vm/reference/gnu/classpath/jdwp/VMMethod.java | 13 ++++++++++++- .../classpath/vm/reference/java/lang/VMFloat.java | 22 ++++++++++++++++++++++ .../classpath/vm/reference/sun/misc/Unsafe.java | 2 +- 4 files changed, 39 insertions(+), 3 deletions(-) (limited to 'libjava/classpath/vm/reference') diff --git a/libjava/classpath/vm/reference/gnu/classpath/jdwp/VMFrame.java b/libjava/classpath/vm/reference/gnu/classpath/jdwp/VMFrame.java index eec7b63..767a902 100644 --- a/libjava/classpath/vm/reference/gnu/classpath/jdwp/VMFrame.java +++ b/libjava/classpath/vm/reference/gnu/classpath/jdwp/VMFrame.java @@ -73,12 +73,15 @@ public class VMFrame * @param thr a Thread, the thread this frame is in * @param frame_id a long, the jframeID of this frame * @param frame_loc a Location, the location of this frame + * @param frame_obj the "this" object of this frame */ - public VMFrame(Thread thr, long frame_id, Location frame_loc) + public VMFrame(Thread thr, long frame_id, Location frame_loc, + Object frame_obj) { thread = thr; id = frame_id; loc = frame_loc; + obj = frame_obj; } /** diff --git a/libjava/classpath/vm/reference/gnu/classpath/jdwp/VMMethod.java b/libjava/classpath/vm/reference/gnu/classpath/jdwp/VMMethod.java index d345bc1..6a2b04e 100644 --- a/libjava/classpath/vm/reference/gnu/classpath/jdwp/VMMethod.java +++ b/libjava/classpath/vm/reference/gnu/classpath/jdwp/VMMethod.java @@ -1,5 +1,5 @@ /* VMMethod.java -- a method in a virtual machine - Copyright (C) 2006 Free Software Foundation, Inc. + Copyright (C) 2006, 2007 Free Software Foundation, Inc. This file is part of GNU Classpath. @@ -175,4 +175,15 @@ public class VMMethod { return VMVirtualMachine.getClassMethod(klass, bb.getLong()); } + + public boolean equals(Object obj) + { + if (obj instanceof VMMethod) + { + VMMethod m = (VMMethod) obj; + return (getId() == m.getId()); + } + + return false; + } } diff --git a/libjava/classpath/vm/reference/java/lang/VMFloat.java b/libjava/classpath/vm/reference/java/lang/VMFloat.java index 2e7f439..1534813 100644 --- a/libjava/classpath/vm/reference/java/lang/VMFloat.java +++ b/libjava/classpath/vm/reference/java/lang/VMFloat.java @@ -108,4 +108,26 @@ final class VMFloat */ static native float intBitsToFloat(int bits); + /** + * @param f the float to convert + * @return the String representing the float + */ + static String toString(float f) + { + return VMDouble.toString(f, true); + } + + /** + * @param str the String to convert + * @return the float value of s + * @throws NumberFormatException if str cannot be parsed as a + * float + * @throws NullPointerException if str is null + */ + 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); + } } // class VMFloat diff --git a/libjava/classpath/vm/reference/sun/misc/Unsafe.java b/libjava/classpath/vm/reference/sun/misc/Unsafe.java index fa199f8..5dee8cf 100644 --- a/libjava/classpath/vm/reference/sun/misc/Unsafe.java +++ b/libjava/classpath/vm/reference/sun/misc/Unsafe.java @@ -305,7 +305,7 @@ public class Unsafe * * @param thread the thread to unblock. */ - public native void unpark(Thread thread); + public native void unpark(Object thread); /** * Blocks the thread until a matching -- cgit v1.1