Commit 161a649c by Keith Seitz Committed by Keith Seitz

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
parent 22fa69da
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> 2007-01-25 Andrew Haley <aph@redhat.com>
* configure, Makefile.in, include/config.h.in: Rebuilt. * configure, Makefile.in, include/config.h.in: Rebuilt.
......
// natVMMethod.cc -- native support for VMMethod // 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. This file is part of libgcj.
...@@ -11,28 +11,46 @@ details. */ ...@@ -11,28 +11,46 @@ details. */
#include <config.h> #include <config.h>
#include <gcj/cni.h> #include <gcj/cni.h>
#include <java-interp.h> #include <java-interp.h>
#include <jvmti.h>
#include "jvmti-int.h"
#include <gnu/classpath/jdwp/VMMethod.h> #include <gnu/classpath/jdwp/VMMethod.h>
#include <gnu/classpath/jdwp/exception/JdwpInternalErrorException.h> #include <gnu/classpath/jdwp/exception/JdwpInternalErrorException.h>
#include <gnu/classpath/jdwp/util/LineTable.h> #include <gnu/classpath/jdwp/util/LineTable.h>
#include <gnu/classpath/jdwp/util/VariableTable.h> #include <gnu/classpath/jdwp/util/VariableTable.h>
java::lang::String* jstring
gnu::classpath::jdwp::VMMethod::getName () 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 () 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 jint
gnu::classpath::jdwp::VMMethod::getModifiers () 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 * gnu::classpath::jdwp::util::LineTable *
......
...@@ -48,6 +48,12 @@ static void JNICALL jdwpVMInitCB (jvmtiEnv *, JNIEnv *, jthread); ...@@ -48,6 +48,12 @@ static void JNICALL jdwpVMInitCB (jvmtiEnv *, JNIEnv *, jthread);
// JVMTI environment // JVMTI environment
static jvmtiEnv *_jdwp_jvmtiEnv; static jvmtiEnv *_jdwp_jvmtiEnv;
jvmtiEnv *
_Jv_GetJDWP_JVMTIEnv (void)
{
return _jdwp_jvmtiEnv;
}
void void
gnu::classpath::jdwp::VMVirtualMachine::initialize () gnu::classpath::jdwp::VMVirtualMachine::initialize ()
{ {
......
/* jvmti-int.h -- Internal JVMTI definitions /* 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. This file is part of GNU Classpath.
...@@ -82,4 +82,7 @@ namespace JVMTI ...@@ -82,4 +82,7 @@ namespace JVMTI
For speed, this function should only be called after For speed, this function should only be called after
JVMTI_REQUESTED_EVENT is checked. */ JVMTI_REQUESTED_EVENT is checked. */
extern void _Jv_JVMTI_PostEvent (jvmtiEvent type, jthread event_thread, ...); 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__ */ #endif /* __GCJ_JVMTI_INT_H__ */
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment