diff options
author | Keith Seitz <keiths@redhat.com> | 2007-01-25 21:05:18 +0000 |
---|---|---|
committer | Keith Seitz <kseitz@gcc.gnu.org> | 2007-01-25 21:05:18 +0000 |
commit | 161a649cb95838bb373e2bcdaab050d2215c9754 (patch) | |
tree | 1f03282fde89cfd286c4b75b454f98b454bb2d3f | |
parent | 22fa69dace0a41ac78a0fd7a1db1f00e5fc8c3b1 (diff) | |
download | gcc-161a649cb95838bb373e2bcdaab050d2215c9754.zip gcc-161a649cb95838bb373e2bcdaab050d2215c9754.tar.gz gcc-161a649cb95838bb373e2bcdaab050d2215c9754.tar.bz2 |
jvmti-int.h (_Jv_GetJDWP_JVMTIEnv): Declare.
* include/jvmti-int.h (_Jv_GetJDWP_JVMTIEnv): Declare.
* gnu/classpath/jdwp/natVMVirtualMachine.cc
(_Jv_GetJDWP_JVMTIEnv): New function.
* gnu/classpath/jdwp/natVMMethod.cc (getName): Implement.
(getSignature): Implement.
(getModifiers): Implement.
From-SVN: r121185
-rw-r--r-- | libjava/ChangeLog | 9 | ||||
-rw-r--r-- | libjava/gnu/classpath/jdwp/natVMMethod.cc | 30 | ||||
-rw-r--r-- | libjava/gnu/classpath/jdwp/natVMVirtualMachine.cc | 6 | ||||
-rw-r--r-- | libjava/include/jvmti-int.h | 5 |
4 files changed, 43 insertions, 7 deletions
diff --git a/libjava/ChangeLog b/libjava/ChangeLog index eb99fdf1..37d61bc 100644 --- a/libjava/ChangeLog +++ b/libjava/ChangeLog @@ -1,3 +1,12 @@ +2007-01-25 Keith Seitz <keiths@redhat.com> + + * include/jvmti-int.h (_Jv_GetJDWP_JVMTIEnv): Declare. + * gnu/classpath/jdwp/natVMVirtualMachine.cc + (_Jv_GetJDWP_JVMTIEnv): New function. + * gnu/classpath/jdwp/natVMMethod.cc (getName): Implement. + (getSignature): Implement. + (getModifiers): Implement. + 2007-01-25 Andrew Haley <aph@redhat.com> * configure, Makefile.in, include/config.h.in: Rebuilt. diff --git a/libjava/gnu/classpath/jdwp/natVMMethod.cc b/libjava/gnu/classpath/jdwp/natVMMethod.cc index 7dea474..07d5622 100644 --- a/libjava/gnu/classpath/jdwp/natVMMethod.cc +++ b/libjava/gnu/classpath/jdwp/natVMMethod.cc @@ -1,6 +1,6 @@ // natVMMethod.cc -- native support for VMMethod -/* Copyright (C) 2006 Free Software Foundation +/* Copyright (C) 2006, 2007 Free Software Foundation This file is part of libgcj. @@ -11,28 +11,46 @@ details. */ #include <config.h> #include <gcj/cni.h> #include <java-interp.h> +#include <jvmti.h> +#include "jvmti-int.h" #include <gnu/classpath/jdwp/VMMethod.h> #include <gnu/classpath/jdwp/exception/JdwpInternalErrorException.h> #include <gnu/classpath/jdwp/util/LineTable.h> #include <gnu/classpath/jdwp/util/VariableTable.h> -java::lang::String* +jstring gnu::classpath::jdwp::VMMethod::getName () { - return NULL; + jvmtiEnv *env = _Jv_GetJDWP_JVMTIEnv (); + jmethodID method = reinterpret_cast<jmethodID> (_methodId); + char *name; + env->GetMethodName (method, &name, NULL, NULL); + jstring string = JvNewStringUTF (name); + env->Deallocate (reinterpret_cast<unsigned char *> (name)); + return string; } -java::lang::String* +jstring gnu::classpath::jdwp::VMMethod::getSignature () { - return NULL; + jvmtiEnv *env = _Jv_GetJDWP_JVMTIEnv (); + jmethodID method = reinterpret_cast<jmethodID> (_methodId); + char *signature; + env->GetMethodName (method, NULL, &signature, NULL); + jstring string = JvNewStringUTF (signature); + env->Deallocate (reinterpret_cast<unsigned char *> (signature)); + return string; } jint gnu::classpath::jdwp::VMMethod::getModifiers () { - return 0; + jvmtiEnv *env = _Jv_GetJDWP_JVMTIEnv (); + jmethodID method = reinterpret_cast<jmethodID> (_methodId); + jint flags; + env->GetMethodModifiers (method, &flags); + return flags; } gnu::classpath::jdwp::util::LineTable * diff --git a/libjava/gnu/classpath/jdwp/natVMVirtualMachine.cc b/libjava/gnu/classpath/jdwp/natVMVirtualMachine.cc index afdfbc7..ef4fe28 100644 --- a/libjava/gnu/classpath/jdwp/natVMVirtualMachine.cc +++ b/libjava/gnu/classpath/jdwp/natVMVirtualMachine.cc @@ -48,6 +48,12 @@ static void JNICALL jdwpVMInitCB (jvmtiEnv *, JNIEnv *, jthread); // JVMTI environment static jvmtiEnv *_jdwp_jvmtiEnv; +jvmtiEnv * +_Jv_GetJDWP_JVMTIEnv (void) +{ + return _jdwp_jvmtiEnv; +} + void gnu::classpath::jdwp::VMVirtualMachine::initialize () { diff --git a/libjava/include/jvmti-int.h b/libjava/include/jvmti-int.h index f88b4ce..822163a 100644 --- a/libjava/include/jvmti-int.h +++ b/libjava/include/jvmti-int.h @@ -1,5 +1,5 @@ /* jvmti-int.h -- Internal JVMTI definitions - Copyright (C) 2006 Free Software Foundation, Inc. + Copyright (C) 2006, 2007 Free Software Foundation, Inc. This file is part of GNU Classpath. @@ -82,4 +82,7 @@ namespace JVMTI For speed, this function should only be called after JVMTI_REQUESTED_EVENT is checked. */ extern void _Jv_JVMTI_PostEvent (jvmtiEvent type, jthread event_thread, ...); +// Returns the jvmtiEnv used by the JDWP backend +extern jvmtiEnv *_Jv_GetJDWP_JVMTIEnv (void); + #endif /* __GCJ_JVMTI_INT_H__ */ |