summaryrefslogtreecommitdiffstats
path: root/libjava
diff options
context:
space:
mode:
authorkseitz <kseitz@138bc75d-0d04-0410-961f-82ee72b054a4>2007-02-08 01:55:29 +0000
committerkseitz <kseitz@138bc75d-0d04-0410-961f-82ee72b054a4>2007-02-08 01:55:29 +0000
commit50115dcec018f461fe5321be53b984fc5c3b3083 (patch)
tree7ea144014105d1c233abe59980ff74db7eafd656 /libjava
parent5e016dfc61b8e84dcbd0df9a4807394e1ca173bf (diff)
downloadppe42-gcc-50115dcec018f461fe5321be53b984fc5c3b3083.tar.gz
ppe42-gcc-50115dcec018f461fe5321be53b984fc5c3b3083.zip
* include/java-interp.h (_Jv_Frame::depth):
New function. * jvmti.cc (_Jv_JVMTI_GetFrameCount): Use _Jv_Frame::depth. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@121709 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'libjava')
-rw-r--r--libjava/ChangeLog6
-rw-r--r--libjava/include/java-interp.h12
-rw-r--r--libjava/jvmti.cc9
3 files changed, 18 insertions, 9 deletions
diff --git a/libjava/ChangeLog b/libjava/ChangeLog
index 3ced148aa4c..d99393be56d 100644
--- a/libjava/ChangeLog
+++ b/libjava/ChangeLog
@@ -1,3 +1,9 @@
+2007-02-07 Keith Seitz <keiths@redhat.com>
+
+ * include/java-interp.h (_Jv_Frame::depth):
+ New function.
+ * jvmti.cc (_Jv_JVMTI_GetFrameCount): Use _Jv_Frame::depth.
+
2007-02-07 Kyle Galloway <kgallowa@redhat.com>
* jvmti.cc (CHECK_FOR_NATIVE_METHOD): New macro.
diff --git a/libjava/include/java-interp.h b/libjava/include/java-interp.h
index 1370ef1de50..ce2fac273c4 100644
--- a/libjava/include/java-interp.h
+++ b/libjava/include/java-interp.h
@@ -1,6 +1,6 @@
// java-interp.h - Header file for the bytecode interpreter. -*- c++ -*-
-/* Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006 Free Software Foundation
+/* Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007 Free Software Foundation
This file is part of libgcj.
@@ -357,6 +357,16 @@ public:
{
thread->frame = (gnu::gcj::RawData *) next;
}
+
+ int depth ()
+ {
+ int depth = 0;
+ struct _Jv_Frame *f;
+ for (f = this; f != NULL; f = f->next)
+ ++depth;
+
+ return depth;
+ }
};
// An interpreted frame in the call stack
diff --git a/libjava/jvmti.cc b/libjava/jvmti.cc
index ba4ee817d47..815bee54aca 100644
--- a/libjava/jvmti.cc
+++ b/libjava/jvmti.cc
@@ -271,14 +271,7 @@ _Jv_JVMTI_GetFrameCount (MAYBE_UNUSED jvmtiEnv *env, jthread thread,
THREAD_CHECK_IS_ALIVE (thr);
_Jv_Frame *frame = reinterpret_cast<_Jv_Frame *> (thr->frame);
- (*frame_count) = 0;
-
- while (frame != NULL)
- {
- (*frame_count)++;
- frame = frame->next;
- }
-
+ (*frame_count) = frame->depth ();
return JVMTI_ERROR_NONE;
}
OpenPOWER on IntegriCloud