<div>Looks good!</div><div><br></div>On Thu, Oct 27, 2011 at 3:13 AM, Will Dietz <span dir="ltr"><<a href="mailto:wdietz2@illinois.edu">wdietz2@illinois.edu</a>></span> wrote:<br><div class="gmail_quote"><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;">
Inlined below.<br>
<br>
OpenJDK's method for this will later include the call to<br>
System.intializeSystemClass(), for what it's worth.<br>
<br>
~Will<br>
<br>
<br>
>From 88f4d3f9facb73f9a55614284f45c09bef812953 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:01:24 -0500<br>
Subject: [PATCH 3/3] Move runtime-specific Jnjvm initialization to new<br>
 JavaUpcalls method.<br>
<br>
---<br>
 lib/J3/ClassLib/GNUClasspath/JavaUpcalls.cpp |   10 ++++++++++<br>
 lib/J3/ClassLib/GNUClasspath/JavaUpcalls.h   |    1 +<br>
 lib/J3/ClassLib/OpenJDK/JavaUpcalls.cpp      |    5 +++++<br>
 lib/J3/ClassLib/OpenJDK/JavaUpcalls.h        |    1 +<br>
 lib/J3/VMCore/Jnjvm.cpp                      |    5 +++--<br>
 5 files changed, 20 insertions(+), 2 deletions(-)<br>
<br>
diff --git a/lib/J3/ClassLib/GNUClasspath/JavaUpcalls.cpp<br>
b/lib/J3/ClassLib/GNUClasspath/JavaUpcalls.cpp<br>
index 3ebac59..bc797d1 100644<br>
--- a/lib/J3/ClassLib/GNUClasspath/JavaUpcalls.cpp<br>
+++ b/lib/J3/ClassLib/GNUClasspath/JavaUpcalls.cpp<br>
@@ -1061,6 +1061,16 @@ void<br>
Classpath::initialiseClasspath(JnjvmClassLoader* loader) {<br>
   initPhantomReference->setNative();<br>
 }<br>
<br>
+void Classpath::InitializeSystem(Jnjvm * jvm) {<br>
+#define LOAD_CLASS(cl) \<br>
+  cl->resolveClass(); \<br>
+  cl->initialiseClass(jvm);<br>
+  LOAD_CLASS(newVMThread);<br>
+  LOAD_CLASS(newVMThrowable);<br>
+#undef LOAD_CLASS<br>
+<br>
+}<br>
+<br>
 #include "ClasspathConstructor.inc"<br>
 #include "Classpath.inc"<br>
 #include "ClasspathField.inc"<br>
diff --git a/lib/J3/ClassLib/GNUClasspath/JavaUpcalls.h<br>
b/lib/J3/ClassLib/GNUClasspath/JavaUpcalls.h<br>
index f30f3ac..2c355f9 100644<br>
--- a/lib/J3/ClassLib/GNUClasspath/JavaUpcalls.h<br>
+++ b/lib/J3/ClassLib/GNUClasspath/JavaUpcalls.h<br>
@@ -275,6 +275,7 @@ private:<br>
<br>
 public:<br>
   ISOLATE_STATIC void InitializeThreading(Jnjvm* vm);<br>
+  ISOLATE_STATIC void InitializeSystem(Jnjvm* vm);<br>
 };<br>
<br>
<br>
diff --git a/lib/J3/ClassLib/OpenJDK/JavaUpcalls.cpp<br>
b/lib/J3/ClassLib/OpenJDK/JavaUpcalls.cpp<br>
index 99bcce5..6b68703 100644<br>
--- a/lib/J3/ClassLib/OpenJDK/JavaUpcalls.cpp<br>
+++ b/lib/J3/ClassLib/OpenJDK/JavaUpcalls.cpp<br>
@@ -1069,6 +1069,11 @@ void<br>
Classpath::initialiseClasspath(JnjvmClassLoader* loader) {<br>
   initPhantomReference->setNative();<br>
 }<br>
<br>
+void Classpath::InitializeSystem(Jnjvm * jvm) {<br>
+  // TODO: Implement me!<br>
+}<br>
+<br>
+<br>
 #include "ClasspathConstructor.inc"<br>
 #include "Classpath.inc"<br>
 #include "ClasspathField.inc"<br>
diff --git a/lib/J3/ClassLib/OpenJDK/JavaUpcalls.h<br>
b/lib/J3/ClassLib/OpenJDK/JavaUpcalls.h<br>
index ae5eb63..7bb5c8e 100644<br>
--- a/lib/J3/ClassLib/OpenJDK/JavaUpcalls.h<br>
+++ b/lib/J3/ClassLib/OpenJDK/JavaUpcalls.h<br>
@@ -275,6 +275,7 @@ private:<br>
<br>
 public:<br>
   ISOLATE_STATIC void InitializeThreading(Jnjvm* vm);<br>
+  ISOLATE_STATIC void InitializeSystem(Jnjvm* vm);<br>
 };<br>
<br>
<br>
diff --git a/lib/J3/VMCore/Jnjvm.cpp b/lib/J3/VMCore/Jnjvm.cpp<br>
index 4ed8bc3..4961694 100644<br>
--- a/lib/J3/VMCore/Jnjvm.cpp<br>
+++ b/lib/J3/VMCore/Jnjvm.cpp<br>
@@ -1105,9 +1105,7 @@ void Jnjvm::loadBootstrap() {<br>
   LOAD_CLASS(upcalls->newConstructor);<br>
   LOAD_CLASS(upcalls->newField);<br>
   LOAD_CLASS(upcalls->newMethod);<br>
-  LOAD_CLASS(upcalls->newVMThread);<br>
   LOAD_CLASS(upcalls->newStackTraceElement);<br>
-  LOAD_CLASS(upcalls->newVMThrowable);<br>
   LOAD_CLASS(upcalls->boolClass);<br>
   LOAD_CLASS(upcalls->byteClass);<br>
   LOAD_CLASS(upcalls->charClass);<br>
@@ -1151,6 +1149,9 @@ void Jnjvm::loadBootstrap() {<br>
   LOAD_CLASS(upcalls->SystemClass);<br>
 #undef LOAD_CLASS<br>
<br>
+  // Implementation-specific end-of-bootstrap initialization<br>
+  upcalls->InitializeSystem(this);<br>
+<br>
   loadAppClassLoader();<br>
   obj = JavaThread::get()->currentThread();<br>
   javaLoader = appClassLoader->getJavaClassLoader();<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>