aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKeith Seitz <keiths@redhat.com>2007-01-25 21:05:18 +0000
committerKeith Seitz <kseitz@gcc.gnu.org>2007-01-25 21:05:18 +0000
commit161a649cb95838bb373e2bcdaab050d2215c9754 (patch)
tree1f03282fde89cfd286c4b75b454f98b454bb2d3f
parent22fa69dace0a41ac78a0fd7a1db1f00e5fc8c3b1 (diff)
downloadgcc-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/ChangeLog9
-rw-r--r--libjava/gnu/classpath/jdwp/natVMMethod.cc30
-rw-r--r--libjava/gnu/classpath/jdwp/natVMVirtualMachine.cc6
-rw-r--r--libjava/include/jvmti-int.h5
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__ */