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
This commit is contained in:
Keith Seitz 2007-01-25 21:05:18 +00:00 committed by Keith Seitz
parent 22fa69dace
commit 161a649cb9
4 changed files with 43 additions and 7 deletions

View file

@ -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> 2007-01-25 Andrew Haley <aph@redhat.com>
* configure, Makefile.in, include/config.h.in: Rebuilt. * configure, Makefile.in, include/config.h.in: Rebuilt.

View file

@ -1,6 +1,6 @@
// 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. */
#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 *

View file

@ -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 ()
{ {

View file

@ -1,5 +1,5 @@
/* 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
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__ */