summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authortromey <tromey@138bc75d-0d04-0410-961f-82ee72b054a4>2003-08-05 20:06:57 +0000
committertromey <tromey@138bc75d-0d04-0410-961f-82ee72b054a4>2003-08-05 20:06:57 +0000
commitab9cc0645d903db236008c6ce7285d9bbdfcbaf0 (patch)
treee3f41a1bb10099f57d2d2cec78a1ba6efe2490d1
parent54fdd3aa20d21ca89a7eac05b75948e63202bedc (diff)
downloadppe42-gcc-ab9cc0645d903db236008c6ce7285d9bbdfcbaf0.tar.gz
ppe42-gcc-ab9cc0645d903db236008c6ce7285d9bbdfcbaf0.zip
Fix for PR libgcj/11779:
* java/lang/reflect/natField.cc (getAddr): Skip frames in Field class. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@70185 138bc75d-0d04-0410-961f-82ee72b054a4
-rw-r--r--libjava/ChangeLog4
-rw-r--r--libjava/java/lang/reflect/natField.cc11
2 files changed, 10 insertions, 5 deletions
diff --git a/libjava/ChangeLog b/libjava/ChangeLog
index be7d6505378..2ab9b0df948 100644
--- a/libjava/ChangeLog
+++ b/libjava/ChangeLog
@@ -1,5 +1,9 @@
2003-08-05 Tom Tromey <tromey@redhat.com>
+ Fix for PR libgcj/11779:
+ * java/lang/reflect/natField.cc (getAddr): Skip frames in Field
+ class.
+
* java/lang/reflect/Method.java: Updated status comment.
Imported javadoc from Classpath and re-ordered methods.
* java/lang/reflect/Constructor.java: Reindented. Updated
diff --git a/libjava/java/lang/reflect/natField.cc b/libjava/java/lang/reflect/natField.cc
index 5f104a9d999..b7f12f06e92 100644
--- a/libjava/java/lang/reflect/natField.cc
+++ b/libjava/java/lang/reflect/natField.cc
@@ -59,13 +59,14 @@ getAddr (java::lang::reflect::Field* field, jclass caller, jobject obj)
// calls. However, we never implemented that, so we have to find
// the caller by hand instead.
gnu::gcj::runtime::StackTrace *t
- = new gnu::gcj::runtime::StackTrace(4);
+ = new gnu::gcj::runtime::StackTrace(7);
try
{
- for (int i = 1; !caller; i++)
- {
- caller = t->classAt (i);
- }
+ // We want to skip all the frames on the stack from this class.
+ for (int i = 1;
+ !caller || caller == &java::lang::reflect::Field::class$;
+ i++)
+ caller = t->classAt (i);
}
catch (::java::lang::ArrayIndexOutOfBoundsException *e)
{
OpenPOWER on IntegriCloud