This is the mail archive of the java-patches@gcc.gnu.org mailing list for the Java project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[RFA] Implement VMVM.getClassStatus


Hi,

The attached patch simply moves some code from the jdwp breakpoint callback to VMVirtualMachine.getClassStatus, thereby implementing it.

Ok?

Keith

ChangeLog
2007-02-16  Keith Seitz  <keiths@redhat.com>

        * gnu/classpath/jdwp/natVMVirtualMachine.cc
        (jdwpClassPrepareCB): Move class status stuff to ...
        (getClassStatus): ... here.
Index: gnu/classpath/jdwp/natVMVirtualMachine.cc
===================================================================
--- gnu/classpath/jdwp/natVMVirtualMachine.cc	(revision 122065)
+++ gnu/classpath/jdwp/natVMVirtualMachine.cc	(working copy)
@@ -453,9 +453,25 @@
 
 jint
 gnu::classpath::jdwp::VMVirtualMachine::
-getClassStatus (MAYBE_UNUSED jclass klass)
+getClassStatus (jclass klass)
 {
-  return 0;
+  jint flags = 0;
+  jvmtiError err = _jdwp_jvmtiEnv->GetClassStatus (klass, &flags);
+  if (err != JVMTI_ERROR_NONE)
+    throw_jvmti_error (err);
+
+  using namespace gnu::classpath::jdwp::event;
+  jint status = 0;
+  if (flags & JVMTI_CLASS_STATUS_VERIFIED)
+    status |= ClassPrepareEvent::STATUS_VERIFIED;
+  if (flags & JVMTI_CLASS_STATUS_PREPARED)
+    status |= ClassPrepareEvent::STATUS_PREPARED;
+  if (flags & JVMTI_CLASS_STATUS_ERROR)
+    status |= ClassPrepareEvent::STATUS_ERROR;
+  if (flags & JVMTI_CLASS_STATUS_INITIALIZED)
+    status |= ClassPrepareEvent::STATUS_INITIALIZED;
+
+  return status;
 }
 
 JArray<gnu::classpath::jdwp::VMMethod *> *
@@ -628,7 +644,7 @@
 
 jstring
 gnu::classpath::jdwp::VMVirtualMachine::
-getSourceFile (MAYBE_UNUSED jclass clazz)
+getSourceFile (jclass clazz)
 {
   return NULL;
 }
@@ -812,27 +828,12 @@
 }
 
 static void JNICALL
-jdwpClassPrepareCB (jvmtiEnv *env, MAYBE_UNUSED JNIEnv *jni_env,
+jdwpClassPrepareCB (MAYBE_UNUSED jvmtiEnv *env, MAYBE_UNUSED JNIEnv *jni_env,
 		    jthread thread, jclass klass)
 {
   using namespace gnu::classpath::jdwp;
 
-  jint flags = 0;
-  jvmtiError err = env->GetClassStatus (klass, &flags);
-  if (err != JVMTI_ERROR_NONE)
-    throw_jvmti_error (err);
-
-  using namespace gnu::classpath::jdwp::event;
-  jint status = 0;
-  if (flags & JVMTI_CLASS_STATUS_VERIFIED)
-    status |= ClassPrepareEvent::STATUS_VERIFIED;
-  if (flags & JVMTI_CLASS_STATUS_PREPARED)
-    status |= ClassPrepareEvent::STATUS_PREPARED;
-  if (flags & JVMTI_CLASS_STATUS_ERROR)
-    status |= ClassPrepareEvent::STATUS_ERROR;
-  if (flags & JVMTI_CLASS_STATUS_INITIALIZED)
-    status |= ClassPrepareEvent::STATUS_INITIALIZED;
-
+  jint status = VMVirtualMachine::getClassStatus (klass);
   event::ClassPrepareEvent *event
     = new event::ClassPrepareEvent (thread, klass, status);
   Jdwp::notify (event);

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]