summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBrian Jones <cbj@gnu.org>2000-12-10 17:42:09 +0000
committerBrian Jones <cbj@gnu.org>2000-12-10 17:42:09 +0000
commitc1b5376c8d280d755fc898cd04f2e6ea0ee96128 (patch)
treec48d8077e1af211b0181dd5308f8ff8a35e7cbed
parentfa4cf09bb9576559b0e8cd6431477ef34a5d94b1 (diff)
downloadclasspath-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--ChangeLog10
-rw-r--r--gnu/classpath/.cvsignore1
-rw-r--r--java/lang/Makefile.am1
-rwxr-xr-xnative/java.lang/System.c6
-rw-r--r--vm/reference/java/lang/Makefile.am1
-rw-r--r--vm/reference/java/lang/Throwable.java (renamed from java/lang/Throwable.java)48
6 files changed, 27 insertions, 40 deletions
diff --git a/ChangeLog b/ChangeLog
index 77cb1b026..083723ab6 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -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