Looks good!<br><br><div class="gmail_quote">On Thu, Oct 27, 2011 at 3:56 AM, 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>
<br>
>From e25a607974c98c8c01107ac3a72b666160f0023c Mon Sep 17 00:00:00 2001<br>
From: Will Dietz <<a href="mailto:w@wdtz.org">w@wdtz.org</a>><br>
Date: Wed, 26 Oct 2011 20:52:26 -0500<br>
Subject: [PATCH 1/3] OpenJDK.inc: Implement JVM_FindPrimitiveClass<br>
<br>
---<br>
lib/J3/ClassLib/OpenJDK/OpenJDK.inc | 43 ++++++++++++++++++++++++++++++++++-<br>
1 files changed, 42 insertions(+), 1 deletions(-)<br>
<br>
diff --git a/lib/J3/ClassLib/OpenJDK/OpenJDK.inc<br>
b/lib/J3/ClassLib/OpenJDK/OpenJDK.inc<br>
index e5690a5..2380abd 100644<br>
--- a/lib/J3/ClassLib/OpenJDK/OpenJDK.inc<br>
+++ b/lib/J3/ClassLib/OpenJDK/OpenJDK.inc<br>
@@ -549,9 +549,50 @@ JVM_GetCallerClass(JNIEnv *env, int n) {<br>
* utf: class name<br>
*/<br>
<br>
+<br>
+const struct {<br>
+ const char * name;<br>
+ char id;<br>
+} static PrimMap[] = {<br>
+ { "boolean", 'Z' },<br>
+ { "byte" , 'B' },<br>
+ { "char" , 'C' },<br>
+ { "short" , 'S' },<br>
+ { "int" , 'I' },<br>
+ { "long" , 'J' },<br>
+ { "float" , 'F' },<br>
+ { "double" , 'D' },<br>
+ { "void" , 'V' }<br>
+};<br>
+const static unsigned PrimMapSize = sizeof(PrimMap)/sizeof(PrimMap[0]);<br>
+<br>
JNIEXPORT jclass JNICALL<br>
JVM_FindPrimitiveClass(JNIEnv *env, const char *utf) {<br>
- NYI();<br>
+ JavaObject* res = 0;<br>
+ llvm_gcroot(res, 0);<br>
+<br>
+ BEGIN_JNI_EXCEPTION<br>
+<br>
+ Jnjvm* vm = JavaThread::get()->getJVM();<br>
+<br>
+ UserClassPrimitive * prim = 0;<br>
+ for(unsigned i = 0; i < PrimMapSize; ++i) {<br>
+ if(!strcmp(PrimMap[i].name, utf)) {<br>
+ prim = UserClassPrimitive::byteIdToPrimitive(PrimMap[i].id, vm->upcalls);<br>
+ break;<br>
+ }<br>
+ }<br>
+ if (!prim) {<br>
+ fprintf(stderr, "Unsupported primitive \"%s\"! Missing table<br>
entry?\n", utf);<br>
+ }<br>
+ assert(prim && "Invalid Primitive in JVM_FindPrimitiveClass");<br>
+<br>
+ res = (JavaObject*)prim->getClassDelegateePtr(vm);<br>
+ RETURN_FROM_JNI((jclass)res);<br>
+<br>
+ END_JNI_EXCEPTION<br>
+<br>
+ return 0;<br>
}<br>
<br>
/*<br>
<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></blockquote></div><br>