summaryrefslogtreecommitdiffstats
path: root/libjava/gnu
diff options
context:
space:
mode:
authoraph <aph@138bc75d-0d04-0410-961f-82ee72b054a4>2003-08-20 17:27:56 +0000
committeraph <aph@138bc75d-0d04-0410-961f-82ee72b054a4>2003-08-20 17:27:56 +0000
commit30e23acf269fc543557d02a61c9f9d3539f5e8fa (patch)
tree8cc9800fc859447329cd4c9ba42a32a51f71de0f /libjava/gnu
parent09b5e87b255c834c2e43f4869eaaef0ae78dc1e6 (diff)
downloadppe42-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.java2
-rw-r--r--libjava/gnu/gcj/runtime/natStackTrace.cc17
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*
OpenPOWER on IntegriCloud