diff options
author | Brian Jones <cbj@gnu.org> | 2000-12-10 17:42:09 +0000 |
---|---|---|
committer | Brian Jones <cbj@gnu.org> | 2000-12-10 17:42:09 +0000 |
commit | c1b5376c8d280d755fc898cd04f2e6ea0ee96128 (patch) | |
tree | c48d8077e1af211b0181dd5308f8ff8a35e7cbed | |
parent | fa4cf09bb9576559b0e8cd6431477ef34a5d94b1 (diff) | |
download | classpath-c1b5376c8d280d755fc898cd04f2e6ea0ee96128.tar.gz |
* gnu/classpath/.cvsignore : Ignore Configuration.java
* native/java.lang/System.c (Java_java_lang_System_setIn) : fixed
call to GetStaticFieldID().
(Java_java_lang_System_setOut) : Ditto.
(Java_java_lang_System_setErr) : Ditto.
* java/lang/Makefile.am : Removed Throwable.java
* vm/reference/java/lang/Makefile.am : Added Throwable.java.
Throwable.java is now part of the VM interface.
-rw-r--r-- | ChangeLog | 10 | ||||
-rw-r--r-- | gnu/classpath/.cvsignore | 1 | ||||
-rw-r--r-- | java/lang/Makefile.am | 1 | ||||
-rwxr-xr-x | native/java.lang/System.c | 6 | ||||
-rw-r--r-- | vm/reference/java/lang/Makefile.am | 1 | ||||
-rw-r--r-- | vm/reference/java/lang/Throwable.java (renamed from java/lang/Throwable.java) | 48 |
6 files changed, 27 insertions, 40 deletions
@@ -1,3 +1,13 @@ +2000-12-10 Brian Jones <cbj@gnu.org> + * gnu/classpath/.cvsignore : Ignore Configuration.java + * native/java.lang/System.c (Java_java_lang_System_setIn) : fixed + call to GetStaticFieldID(). + (Java_java_lang_System_setOut) : Ditto. + (Java_java_lang_System_setErr) : Ditto. + * java/lang/Makefile.am : Removed Throwable.java + * vm/reference/java/lang/Makefile.am : Added Throwable.java. + Throwable.java is now part of the VM interface. + 2000-12-09 Bryce McKinlay <bryce@albatross.co.nz> * java/io/DataInputStream.java (readBoolean): Use convertToBoolean(). diff --git a/gnu/classpath/.cvsignore b/gnu/classpath/.cvsignore index 282522db0..4a144be8e 100644 --- a/gnu/classpath/.cvsignore +++ b/gnu/classpath/.cvsignore @@ -1,2 +1,3 @@ Makefile Makefile.in +Configuration.java diff --git a/java/lang/Makefile.am b/java/lang/Makefile.am index d121656b3..a6fd49692 100644 --- a/java/lang/Makefile.am +++ b/java/lang/Makefile.am @@ -68,7 +68,6 @@ System.java \ ThreadDeath.java \ ThreadGroup.java \ ThreadLocal.java \ -Throwable.java \ UnknownError.java \ UnsatisfiedLinkError.java \ UnsupportedClassVersionError.java \ diff --git a/native/java.lang/System.c b/native/java.lang/System.c index 3912aa619..baca98a9a 100755 --- a/native/java.lang/System.c +++ b/native/java.lang/System.c @@ -34,7 +34,7 @@ executable file might be covered by the GNU General Public License. */ */ JNIEXPORT void JNICALL Java_java_lang_System_setIn (JNIEnv * env, jclass thisClass, jobject in) { - jfieldID inField = (*env)->GetStaticFieldID(env,thisClass,"in","Ljava/io/InputStream"); + jfieldID inField = (*env)->GetStaticFieldID(env,thisClass,"in","Ljava/io/InputStream;"); (*env)->SetStaticObjectField(env,thisClass,inField,in); } @@ -45,7 +45,7 @@ JNIEXPORT void JNICALL Java_java_lang_System_setIn */ JNIEXPORT void JNICALL Java_java_lang_System_setOut (JNIEnv * env, jclass thisClass, jobject out) { - jfieldID outField = (*env)->GetStaticFieldID(env,thisClass,"out","Ljava/io/PrintStream"); + jfieldID outField = (*env)->GetStaticFieldID(env,thisClass,"out","Ljava/io/PrintStream;"); (*env)->SetStaticObjectField(env,thisClass,outField,out); } @@ -56,7 +56,7 @@ JNIEXPORT void JNICALL Java_java_lang_System_setOut */ JNIEXPORT void JNICALL Java_java_lang_System_setErr (JNIEnv * env, jclass thisClass, jobject err) { - jfieldID errField = (*env)->GetStaticFieldID(env,thisClass,"err","Ljava/io/PrintStream"); + jfieldID errField = (*env)->GetStaticFieldID(env,thisClass,"err","Ljava/io/PrintStream;"); (*env)->SetStaticObjectField(env,thisClass,errField,err); } diff --git a/vm/reference/java/lang/Makefile.am b/vm/reference/java/lang/Makefile.am index eb2c4efc7..200747a59 100644 --- a/vm/reference/java/lang/Makefile.am +++ b/vm/reference/java/lang/Makefile.am @@ -6,6 +6,7 @@ EXTRA_DIST = \ Class.java \ Runtime.java \ Thread.java \ +Throwable.java \ VMClassLoader.java \ VMObject.java \ VMSecurityManager.java \ diff --git a/java/lang/Throwable.java b/vm/reference/java/lang/Throwable.java index 66b83adba..a9214babc 100644 --- a/java/lang/Throwable.java +++ b/vm/reference/java/lang/Throwable.java @@ -33,8 +33,6 @@ import java.io.PrintStream; import java.io.ObjectOutputStream; import java.io.ObjectInputStream; import java.io.IOException; -import gnu.vm.stack.StackTrace; -import gnu.vm.stack.StackFrame; /** * Throwable is the superclass of all exceptions that can be raised. @@ -49,8 +47,12 @@ public class Throwable extends Object implements Serializable static final long serialVersionUID = -3042686055658047285L; private String message = null; - private StackTrace st; - + + static + { + System.loadLibrary ("runtime"); + } + /** * Instantiate this Throwable with an empty message. */ @@ -109,11 +111,7 @@ public class Throwable extends Object implements Serializable */ public void printStackTrace(PrintStream s) { s.println(toString()); - StackTrace st = this.st; - for(int i=st.numFrames() - 1; i >= 0; i--) { - StackFrame f = st.frameAt(i); - s.println("in " + f.toString()); - } + printStackTrace0 (s); } /** @@ -122,40 +120,18 @@ public class Throwable extends Object implements Serializable */ public void printStackTrace(PrintWriter w) { w.println(toString()); - for(int i=st.numFrames() - 1; i>=0; i--) { - StackFrame f = st.frameAt(i); - w.println("in " + f.toString()); - } + printStackTrace0 (w); } - + + private native void printStackTrace0 (Object stream); + /** * Fill in the stack trace with the current execution stack. * Normally used when rethrowing an exception, to strip * off unnecessary extra stack frames. * @return this same throwable. */ - public Throwable fillInStackTrace() - { - st = StackTrace.copyCurrentStackTrace(); - st.pop(); // get rid of the fillInStackTrace() call - int lastIndex = st.numFrames() - 1; - // This needs to be in here because exceptions in general are bad - // when in the exception code. :) - // It can be safely removed once exception code is real. - if(lastIndex < 0) { - return this; - } - StackFrame frame = st.frameAt(lastIndex); - while (Throwable.class.isAssignableFrom(frame.getCalledClass()) - && frame.getCalledMethod().equals("<init>")) { - // get rid of the throwable - constructor hierarchy, that is present - // on the stack if this is called from our init method. - st.pop(); - lastIndex--; - frame = st.frameAt(lastIndex); - } - return this; - } + public native Throwable fillInStackTrace(); /** * Serialize the object in a manner binary compatible with the JDK 1.2 |