# HG changeset patch # User Thomas Wuerthinger # Date 1339170928 -7200 # Node ID 77d302416830edbb057b1d48127e3f1c0c7e00d2 # Parent ab6115911fe5b957b4a9d1478f59691d82171ed3 Create HotSpotGraalRuntime class on HotSpot when Graal.getRuntime() is accessed. diff -r ab6115911fe5 -r 77d302416830 graal/com.oracle.graal.api.test/src/com/oracle/graal/api/GraalTest.java --- 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 diff -r ab6115911fe5 -r 77d302416830 graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/HotSpotGraalRuntime.java --- 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"; diff -r ab6115911fe5 -r 77d302416830 src/share/vm/graal/graalRuntime.cpp --- 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, "", "()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