Mercurial > hg > graal-jvmci-8
changeset 5525:77d302416830
Create HotSpotGraalRuntime class on HotSpot when Graal.getRuntime() is accessed.
author | Thomas Wuerthinger <thomas.wuerthinger@oracle.com> |
---|---|
date | Fri, 08 Jun 2012 17:55:28 +0200 |
parents | ab6115911fe5 |
children | 87e4aed94b26 |
files | graal/com.oracle.graal.api.test/src/com/oracle/graal/api/GraalTest.java graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/HotSpotGraalRuntime.java src/share/vm/graal/graalRuntime.cpp |
diffstat | 3 files changed, 9 insertions(+), 1 deletions(-) [+] |
line wrap: on
line diff
--- a/graal/com.oracle.graal.api.test/src/com/oracle/graal/api/GraalTest.java Fri Jun 08 17:00:38 2012 +0200 +++ b/graal/com.oracle.graal.api.test/src/com/oracle/graal/api/GraalTest.java Fri Jun 08 17:55:28 2012 +0200 @@ -32,6 +32,7 @@ @Test public void testRuntimeAvailable() { assertNotNull(Graal.getRuntime()); + System.out.println(Graal.getRuntime().getClass()); } @Test
--- a/graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/HotSpotGraalRuntime.java Fri Jun 08 17:00:38 2012 +0200 +++ b/graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/HotSpotGraalRuntime.java Fri Jun 08 17:55:28 2012 +0200 @@ -27,6 +27,9 @@ public class HotSpotGraalRuntime implements GraalRuntime { + public HotSpotGraalRuntime() { + } + @Override public String getName() { return "HotSpotGraalRuntime";
--- a/src/share/vm/graal/graalRuntime.cpp Fri Jun 08 17:00:38 2012 +0200 +++ b/src/share/vm/graal/graalRuntime.cpp Fri Jun 08 17:55:28 2012 +0200 @@ -28,5 +28,9 @@ ThreadToNativeFromVM ttnfv(thread); jclass klass = env->FindClass("com/oracle/graal/hotspot/HotSpotGraalRuntime"); guarantee(klass != NULL, "Could not find class com.oracle.graal.hotspot.HotSpotGraalRuntime"); - return env->AllocObject(klass); + jmethodID constructor = env->GetMethodID(klass, "<init>", "()V"); + guarantee(constructor != NULL, "Constructor of HotSpotGraalRuntime must not have any parameters"); + jobject newObj = env->AllocObject(klass); + env->CallVoidMethod(newObj, constructor); + return newObj; JVM_END \ No newline at end of file