diff options
| author | kseitz <kseitz@138bc75d-0d04-0410-961f-82ee72b054a4> | 2007-02-08 01:55:29 +0000 |
|---|---|---|
| committer | kseitz <kseitz@138bc75d-0d04-0410-961f-82ee72b054a4> | 2007-02-08 01:55:29 +0000 |
| commit | 50115dcec018f461fe5321be53b984fc5c3b3083 (patch) | |
| tree | 7ea144014105d1c233abe59980ff74db7eafd656 /libjava | |
| parent | 5e016dfc61b8e84dcbd0df9a4807394e1ca173bf (diff) | |
| download | ppe42-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/ChangeLog | 6 | ||||
| -rw-r--r-- | libjava/include/java-interp.h | 12 | ||||
| -rw-r--r-- | libjava/jvmti.cc | 9 |
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; } |

