diff options
author | tromey <tromey@138bc75d-0d04-0410-961f-82ee72b054a4> | 2000-03-02 20:25:20 +0000 |
---|---|---|
committer | tromey <tromey@138bc75d-0d04-0410-961f-82ee72b054a4> | 2000-03-02 20:25:20 +0000 |
commit | a30cc9d9edb056cbd8673014456b6cfc3b03b3f7 (patch) | |
tree | dd49bb49b56ee51fa4bbd2a20cc08ae6eefa6306 /libjava/interpret.cc | |
parent | d2e850c1ebd9bb4d8d5f9fed01bd3bce6a40130e (diff) | |
download | gcc-a30cc9d9edb056cbd8673014456b6cfc3b03b3f7.tar.gz |
* include/java-interp.h: Don't include MethodInvocation.h.
(class _Jv_InterpMethod): Don't make MethodInvocation a friend.
* Makefile.in: Rebuilt.
* Makefile.am (gnu/gcj/runtime/MethodInvocation.h): Removed.
(ordinary_java_source_files): Don't mention
MethodInvocation.java.
* gnu/gcj/runtime/MethodInvocation.java: Removed.
* interpret.cc (MethodInvocation::continue1): Removed.
(run): Handle exceptions here.
* java/lang/ClassLoader.java (defineClass1, defineClass2):
Removed.
* java/lang/natClassLoader.cc (defineClass0): Catch exceptions
here.
(defineClass2): Removed.
* java/lang/reflect/Method.java (hack_trampoline, hack_call):
Removed.
* java/lang/reflect/natMethod.cc (_Jv_CallAnyMethodA): Catch
exceptions here.
(hack_call): Removed.
* java/lang/Class.h (Class): Removed hackRunInitializers,
hackTrampoline.
* java/lang/natClass.cc (hackRunInitializers): Removed.
(initializeClass): Catch exceptions here.
Include ExceptionInInitializerError.h.
* java/lang/Class.java (hackTrampoline, hackRunInitializers):
Removed.
* java/lang/Object.h (Object): Don't mention hack12_6.
* java/lang/natObject.cc (_Jv_FinalizeObject): Catch exceptions
here.
* java/lang/Object.java (hack12_6): Removed.
* java/lang/natThread.cc (run_): Renamed. Catch exceptions here.
(start): Use run_, not run__.
* java/lang/Thread.java (run_): Renamed from run__; old run_
removed.
* jni.cc (_Jv_JNI_FindClass): Handle exceptions.
(_Jv_JNI_EnsureLocalCapacity): Likewise.
(_Jv_JNI_DefineClass): Likewise.
(_Jv_JNI_ThrowNew): Likewise.
(_Jv_JNI_AllocObject): Likewise.
(_Jv_JNI_GetAnyMethodID): Likewise.
(_Jv_JNI_CallAnyMethodV): Likewise.
(_Jv_JNI_CallAnyMethodA): Likewise.
(_Jv_JNI_CallAnyVoidMethodV): Likewise.
(_Jv_JNI_CallAnyVoidMethodA): Likewise.
(_Jv_JNI_GetAnyFieldID): Likewise.
(_Jv_JNI_NewString): Likewise.
(_Jv_JNI_NewStringUTF): Likewise.
(_Jv_JNI_GetStringUTFChars): Likewise.
(_Jv_JNI_NewObjectArray): Likewise.
(_Jv_JNI_NewPrimitiveArray): Likewise.
(_Jv_JNI_GetPrimitiveArrayRegion): Likewise.
(_Jv_JNI_GetStringRegion): Likewise.
(_Jv_JNI_GetStringUTFRegion): Likewise.
(_Jv_JNI_SetPrimitiveArrayRegion): Likewise.
(_Jv_JNI_MonitorEnter): Likewise.
(_Jv_JNI_MonitorExit): Likewise.
(_Jv_JNI_ToReflectedField): Likewise.
(_Jv_JNI_ToReflectedMethod): Likewise.
(_Jv_JNI_RegisterNatives): Likewise.
(_Jv_JNI_AttachCurrentThread): Likewise.
(_Jv_JNI_DestroyJavaVM): Likewise.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@32294 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'libjava/interpret.cc')
-rw-r--r-- | libjava/interpret.cc | 40 |
1 files changed, 12 insertions, 28 deletions
diff --git a/libjava/interpret.cc b/libjava/interpret.cc index 6cde68d981d..2dc5e7724e4 100644 --- a/libjava/interpret.cc +++ b/libjava/interpret.cc @@ -33,19 +33,7 @@ details. */ #include <java-insns.h> #include <java-signal.h> -#ifndef INTERPRETER - -#include <gnu/gcj/runtime/MethodInvocation.h> - -/* This should never happen. */ -void -gnu::gcj::runtime::MethodInvocation::continue1 (gnu::gcj::RawData *, - gnu::gcj::RawData *) -{ - JvFail ("no interpreter"); -} - -#else +#ifdef INTERPRETER #define ClassError _CL_Q34java4lang5Error extern java::lang::Class ClassError; @@ -216,10 +204,17 @@ _Jv_InterpMethod::run (ffi_cif* cif, memcpy ((void*) locals, (void*) args, args_raw_size); next_segment: - /* this will call the method _Jv_InterpMethod::continue0, see below */ - jobject ex = - gnu::gcj::runtime::MethodInvocation::continue0 - ((gnu::gcj::RawData *)this, (gnu::gcj::RawData *)inv); + + jobject ex = NULL; + + try + { + continue1 (inv); + } + catch (java::lang::Throwable *ex2) + { + ex = ex2; + } if (ex == 0) // no exception... { @@ -280,7 +275,6 @@ _Jv_InterpMethod::run (ffi_cif* cif, default: throw_internal_error ("unknown return type"); } - } /** handle an exception */ @@ -379,16 +373,6 @@ void _Jv_InterpMethod::run_synch_class (ffi_cif* cif, if (ex != 0) _Jv_Throw (ex); } -/* this is the exception handler hack, for the interpreter */ -void -gnu::gcj::runtime::MethodInvocation::continue1 (gnu::gcj::RawData *meth, - gnu::gcj::RawData *inv) -{ - _Jv_InterpMethod *meth0 = (_Jv_InterpMethod*)meth; - _Jv_InterpMethodInvocation *inv0 = (_Jv_InterpMethodInvocation*)inv; - meth0->continue1 (inv0); -} - /* This proceeds execution, as designated in "inv". If an exception happens, then it is simply thrown, and handled in Java. Thus, the pc |