From: Keith Seitz Date: Thu, 8 Feb 2007 01:55:29 +0000 (+0000) Subject: java-interp.h (_Jv_Frame::depth): New function. X-Git-Tag: releases/gcc-4.3.0~6955 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=896b1c879215b744a3e58f0c1362b2956d98029e;p=thirdparty%2Fgcc.git java-interp.h (_Jv_Frame::depth): New function. * include/java-interp.h (_Jv_Frame::depth): New function. * jvmti.cc (_Jv_JVMTI_GetFrameCount): Use _Jv_Frame::depth. From-SVN: r121709 --- diff --git a/libjava/ChangeLog b/libjava/ChangeLog index 3ced148aa4c4..d99393be56dd 100644 --- a/libjava/ChangeLog +++ b/libjava/ChangeLog @@ -1,3 +1,9 @@ +2007-02-07 Keith Seitz + + * include/java-interp.h (_Jv_Frame::depth): + New function. + * jvmti.cc (_Jv_JVMTI_GetFrameCount): Use _Jv_Frame::depth. + 2007-02-07 Kyle Galloway * jvmti.cc (CHECK_FOR_NATIVE_METHOD): New macro. diff --git a/libjava/include/java-interp.h b/libjava/include/java-interp.h index 1370ef1de50e..ce2fac273c4c 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 ba4ee817d472..815bee54acac 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; }