Looks good!<br><br><div class="gmail_quote">On Thu, Nov 3, 2011 at 3:27 PM, Will Dietz <span dir="ltr"><<a href="mailto:wdietz2@illinois.edu">wdietz2@illinois.edu</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;">
Inlined below.<br>
<br>
~Will<br>
<br>
>From bf6022bd59d8c1c4cb5b3451de6be01450e05d47 Mon Sep 17 00:00:00 2001<br>
From: Will Dietz <<a href="mailto:w@wdtz.org">w@wdtz.org</a>><br>
Date: Wed, 2 Nov 2011 21:05:45 -0500<br>
Subject: [PATCH 06/17] Impl more JVM_*<br>
 methods--Is{Interface,Array,Primitive},GetPD,GetCompType<br>
<br>
---<br>
 lib/J3/ClassLib/OpenJDK/OpenJDK.inc |   87 +++++++++++++++++++++++++++++++++--<br>
 1 files changed, 82 insertions(+), 5 deletions(-)<br>
<br>
diff --git a/lib/J3/ClassLib/OpenJDK/OpenJDK.inc<br>
b/lib/J3/ClassLib/OpenJDK/OpenJDK.inc<br>
index 60db37a..3d157ed 100644<br>
--- a/lib/J3/ClassLib/OpenJDK/OpenJDK.inc<br>
+++ b/lib/J3/ClassLib/OpenJDK/OpenJDK.inc<br>
@@ -1106,7 +1106,24 @@ JVM_GetClassLoader(JNIEnv *env, jclass cls) {<br>
<br>
 JNIEXPORT jboolean JNICALL<br>
 JVM_IsInterface(JNIEnv *env, jclass cls) {<br>
-  NYI();<br>
+  jboolean res = JNI_FALSE;<br>
+<br>
+  JavaObject * Cl = 0;<br>
+  llvm_gcroot(Cl, 0);<br>
+  BEGIN_JNI_EXCEPTION<br>
+<br>
+  Cl = *(JavaObject**)cls;<br>
+<br>
+  Jnjvm* vm = JavaThread::get()->getJVM();<br>
+  UserCommonClass* cl = UserCommonClass::resolvedImplClass(vm, Cl, false);<br>
+<br>
+  res = cl->isInterface();<br>
+<br>
+  RETURN_FROM_JNI(res);<br>
+<br>
+  END_JNI_EXCEPTION<br>
+<br>
+  return JNI_FALSE;<br>
 }<br>
<br>
 JNIEXPORT jobjectArray JNICALL<br>
@@ -1121,7 +1138,20 @@ JVM_SetClassSigners(JNIEnv *env, jclass cls,<br>
jobjectArray signers) {<br>
<br>
 JNIEXPORT jobject JNICALL<br>
 JVM_GetProtectionDomain(JNIEnv *env, jclass cls) {<br>
-  NYI();<br>
+  JavaObjectClass * JOC = 0;<br>
+  JavaObject * pd = 0;<br>
+  llvm_gcroot(JOC, 0);<br>
+  llvm_gcroot(pd, 0);<br>
+  BEGIN_JNI_EXCEPTION<br>
+<br>
+  JOC = *(JavaObjectClass**)cls;<br>
+  pd = JavaObjectClass::getProtectionDomain(JOC);<br>
+<br>
+  RETURN_FROM_JNI((jobject)th->pushJNIRef(pd));<br>
+<br>
+  END_JNI_EXCEPTION<br>
+<br>
+  return 0;<br>
 }<br>
<br>
 JNIEXPORT void JNICALL<br>
@@ -1131,17 +1161,64 @@ JVM_SetProtectionDomain(JNIEnv *env, jclass<br>
cls, jobject protection_domain) {<br>
<br>
 JNIEXPORT jboolean JNICALL<br>
 JVM_IsArrayClass(JNIEnv *env, jclass cls) {<br>
-  NYI();<br>
+  JavaObject * Cl = 0;<br>
+  llvm_gcroot(Cl, 0);<br>
+  BEGIN_JNI_EXCEPTION<br>
+<br>
+  Cl = *(JavaObject**)cls;<br>
+<br>
+  Jnjvm* vm = JavaThread::get()->getJVM();<br>
+  UserCommonClass* cl = UserCommonClass::resolvedImplClass(vm, Cl, false);<br>
+<br>
+  RETURN_FROM_JNI(cl->isArray());<br>
+<br>
+  END_JNI_EXCEPTION<br>
+<br>
+  return JNI_FALSE;<br>
 }<br>
<br>
 JNIEXPORT jboolean JNICALL<br>
 JVM_IsPrimitiveClass(JNIEnv *env, jclass cls) {<br>
-  NYI();<br>
+  JavaObject * Cl = 0;<br>
+  llvm_gcroot(Cl, 0);<br>
+  BEGIN_JNI_EXCEPTION<br>
+<br>
+  Cl = *(JavaObject**)cls;<br>
+<br>
+  Jnjvm* vm = JavaThread::get()->getJVM();<br>
+  UserCommonClass* cl = UserCommonClass::resolvedImplClass(vm, Cl, false);<br>
+<br>
+  RETURN_FROM_JNI(cl->isPrimitive());<br>
+<br>
+  END_JNI_EXCEPTION<br>
+<br>
+  return JNI_FALSE;<br>
 }<br>
<br>
 JNIEXPORT jclass JNICALL<br>
 JVM_GetComponentType(JNIEnv *env, jclass cls) {<br>
-  NYI();<br>
+  JavaObject * Cl = 0;<br>
+  JavaObject* res = 0;<br>
+  llvm_gcroot(Cl, 0);<br>
+  llvm_gcroot(res, 0);<br>
+  BEGIN_JNI_EXCEPTION<br>
+<br>
+  Cl = *(JavaObject**)cls;<br>
+  Jnjvm* vm = JavaThread::get()->getJVM();<br>
+  UserCommonClass* cl = UserCommonClass::resolvedImplClass(vm, Cl, false);<br>
+<br>
+  if (cl->isArray()) {<br>
+    UserCommonClass* bc = cl->asArrayClass()->baseClass();<br>
+    res = (JavaObject*)bc->getClassDelegateePtr(vm);<br>
+  } else {<br>
+    res = 0;<br>
+  }<br>
+<br>
+  RETURN_FROM_JNI((jclass)res);<br>
+<br>
+  END_JNI_EXCEPTION<br>
+<br>
+  return 0;<br>
 }<br>
<br>
 JNIEXPORT jint JNICALL<br>
<span class="HOEnZb"><font color="#888888">--<br>
1.7.5.1<br>
_______________________________________________<br>
vmkit-commits mailing list<br>
<a href="mailto:vmkit-commits@cs.uiuc.edu">vmkit-commits@cs.uiuc.edu</a><br>
<a href="http://lists.cs.uiuc.edu/mailman/listinfo/vmkit-commits" target="_blank">http://lists.cs.uiuc.edu/mailman/listinfo/vmkit-commits</a><br>
</font></span></blockquote></div><br>