Looks good, thanks!<div><br><div class="gmail_quote">On Mon, Nov 7, 2011 at 3:51 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;">
<div class="im">On Fri, Nov 4, 2011 at 4:23 PM, Nicolas Geoffray<br>
<<a href="mailto:nicolas.geoffray@gmail.com">nicolas.geoffray@gmail.com</a>> wrote:<br>
> Looks good! This is again very similar to what is in classpath. I know I<br>
> said that you should not worry about duplicating code, but after reviewing a<br>
> few of your changes, if you could somehow try to share when you can, that'd<br>
> be great :)<br>
> But feel free to ignore for now, if that's on your way of making the<br>
> progress you want.<br>
> Nicolas<br>
<br>
</div>Good call.<br>
<br>
Updated patch inlined below.  Much simpler :).<br>
<br>
~Will<br>
<br>
>From b2e31a674c06cb9dc2a19c42d97053e91590f5b0 Mon Sep 17 00:00:00 2001<br>
From: Will Dietz <<a href="mailto:w@wdtz.org">w@wdtz.org</a>><br>
Date: Sun, 6 Nov 2011 01:33:34 -0500<br>
Subject: [PATCH 4/8] Impl JVM_NewInstanceFromConstructor, using existing<br>
 Classpath code.<br>
<br>
---<br>
 lib/J3/ClassLib/OpenJDK/OpenJDK.inc |   22 +++++++++++++++++++++-<br>
<div class="im"> 1 files changed, 21 insertions(+), 1 deletions(-)<br>
<br>
diff --git a/lib/J3/ClassLib/OpenJDK/OpenJDK.inc<br>
b/lib/J3/ClassLib/OpenJDK/OpenJDK.inc<br>
</div>index 4f25fb0..15029ea 100644<br>
--- a/lib/J3/ClassLib/OpenJDK/OpenJDK.inc<br>
+++ b/lib/J3/ClassLib/OpenJDK/OpenJDK.inc<br>
@@ -1464,7 +1464,27 @@ JVM_InvokeMethod(JNIEnv *env, jobject method,<br>
<div class="im">jobject _obj, jobjectArray args0)<br>
  */<br>
 JNIEXPORT jobject JNICALL<br>
 JVM_NewInstanceFromConstructor(JNIEnv *env, jobject _c, jobjectArray args0) {<br>
-  NYI();<br>
</div>+  JavaObject * ret = 0;<br>
<div class="im">+  JavaObjectConstructor * c = 0;<br>
</div>+  llvm_gcroot(ret, 0);<br>
+  llvm_gcroot(c, 0);<br>
+<br>
<div class="im">+  BEGIN_JNI_EXCEPTION<br>
+<br>
+  Jnjvm* vm = JavaThread::get()->getJVM();<br>
+<br>
+  c = *(JavaObjectConstructor**)_c;<br>
+<br>
</div>+  ret = proceedConstructor(<br>
+    c,<br>
+    args0? *(ArrayObject**)args0 : 0,<br>
+    JavaObjectConstructor::getClass(c)->getDelegatee(),<br>
+    0 /* unused */ );<br>
+<br>
+  RETURN_FROM_JNI((jobject)th->pushJNIRef(ret));<br>
<div class="HOEnZb"><div class="h5">+  END_JNI_EXCEPTION<br>
+<br>
+  return 0;<br>
 }<br>
<br>
 /*<br>
--<br>
1.7.5.1<br>
</div></div></blockquote></div><br></div>