diff options
| author | aph <aph@138bc75d-0d04-0410-961f-82ee72b054a4> | 2003-08-20 17:27:56 +0000 |
|---|---|---|
| committer | aph <aph@138bc75d-0d04-0410-961f-82ee72b054a4> | 2003-08-20 17:27:56 +0000 |
| commit | 30e23acf269fc543557d02a61c9f9d3539f5e8fa (patch) | |
| tree | 8cc9800fc859447329cd4c9ba42a32a51f71de0f /libjava/gnu | |
| parent | 09b5e87b255c834c2e43f4869eaaef0ae78dc1e6 (diff) | |
| download | ppe42-gcc-30e23acf269fc543557d02a61c9f9d3539f5e8fa.tar.gz ppe42-gcc-30e23acf269fc543557d02a61c9f9d3539f5e8fa.zip | |
2003-01-31 Andrew Haley <aph@redhat.com>
* except.c (prepare_eh_table_type): Use new encoding for exception
handlers when using -fno-assume-compiled.
2003-08-20 Andrew Haley <aph@redhat.com>
* gnu/gcj/runtime/StackTrace.java (getClass): New method.
* gnu/gcj/runtime/natStackTrace.cc (getClass): New method.
(classAt): Break out class lookup function into getClass().
* exception.cc (PERSONALITY_FUNCTION): Use new encoding for exception
handlers when using -fno-assume-compiled.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@70605 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'libjava/gnu')
| -rw-r--r-- | libjava/gnu/gcj/runtime/StackTrace.java | 2 | ||||
| -rw-r--r-- | libjava/gnu/gcj/runtime/natStackTrace.cc | 17 |
2 files changed, 13 insertions, 6 deletions
diff --git a/libjava/gnu/gcj/runtime/StackTrace.java b/libjava/gnu/gcj/runtime/StackTrace.java index 5faaa1495ae..684ee4fd997 100644 --- a/libjava/gnu/gcj/runtime/StackTrace.java +++ b/libjava/gnu/gcj/runtime/StackTrace.java @@ -139,6 +139,8 @@ public final class StackTrace return len; } + public static native Class getClass(RawData ip); + private static native void update(); private static MethodRef methodAtAddress(RawData addr) { diff --git a/libjava/gnu/gcj/runtime/natStackTrace.cc b/libjava/gnu/gcj/runtime/natStackTrace.cc index d39cd00dbab..af8889beb52 100644 --- a/libjava/gnu/gcj/runtime/natStackTrace.cc +++ b/libjava/gnu/gcj/runtime/natStackTrace.cc @@ -124,6 +124,16 @@ gnu::gcj::runtime::StackTrace::getCompiledMethodRef (gnu::gcj::RawData *addr) } java::lang::Class * +gnu::gcj::runtime::StackTrace::getClass (gnu::gcj::RawData *p) +{ + gnu::gcj::runtime::MethodRef *ref = getCompiledMethodRef (p); + if (ref) + return ref->klass; + else + return NULL; +} + +java::lang::Class * gnu::gcj::runtime::StackTrace::classAt (jint n) { _Jv_frame_info *frame = GET_FRAME (n); @@ -137,12 +147,7 @@ gnu::gcj::runtime::StackTrace::classAt (jint n) } #endif // INTERPRETER - gnu::gcj::runtime::MethodRef *ref - = getCompiledMethodRef ((gnu::gcj::RawData *)frame->addr); - if (ref) - return ref->klass; - else - return NULL; + return getClass ((gnu::gcj::RawData *)frame->addr); } java::lang::String* |

