# HG changeset patch # User twisti # Date 1386530509 28800 # Node ID f795de8d8b717b0950368ee18b27d6b6fa8794ad # Parent b16fb0b7479b1463100511bf43bb6ff3d654423f use Unsafe.ensureClassInitialized in HotSpotResolvedObjectType.initialize diff -r b16fb0b7479b -r f795de8d8b71 graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/bridge/CompilerToVM.java --- a/graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/bridge/CompilerToVM.java Sun Dec 08 11:13:26 2013 -0800 +++ b/graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/bridge/CompilerToVM.java Sun Dec 08 11:21:49 2013 -0800 @@ -197,8 +197,6 @@ JavaMethod resolveMethod(HotSpotResolvedObjectType klass, String name, String signature); - void initializeType(HotSpotResolvedObjectType klass); - ResolvedJavaType getResolvedType(Class javaClass); HotSpotResolvedJavaField[] getInstanceFields(HotSpotResolvedObjectType klass); diff -r b16fb0b7479b -r f795de8d8b71 graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/bridge/CompilerToVMImpl.java --- a/graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/bridge/CompilerToVMImpl.java Sun Dec 08 11:13:26 2013 -0800 +++ b/graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/bridge/CompilerToVMImpl.java Sun Dec 08 11:21:49 2013 -0800 @@ -100,9 +100,6 @@ public native boolean hasFinalizableSubclass(HotSpotResolvedObjectType klass); @Override - public native void initializeType(HotSpotResolvedObjectType klass); - - @Override public native void initializeMethod(long metaspaceMethod, HotSpotResolvedJavaMethod method); @Override diff -r b16fb0b7479b -r f795de8d8b71 graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/meta/HotSpotResolvedObjectType.java --- a/graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/meta/HotSpotResolvedObjectType.java Sun Dec 08 11:13:26 2013 -0800 +++ b/graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/meta/HotSpotResolvedObjectType.java Sun Dec 08 11:21:49 2013 -0800 @@ -309,7 +309,7 @@ @Override public void initialize() { if (!isInitialized()) { - runtime().getCompilerToVM().initializeType(this); + unsafe.ensureClassInitialized(javaMirror); assert isInitialized(); } } diff -r b16fb0b7479b -r f795de8d8b71 src/share/vm/graal/graalCompilerToVM.cpp --- a/src/share/vm/graal/graalCompilerToVM.cpp Sun Dec 08 11:13:26 2013 -0800 +++ b/src/share/vm/graal/graalCompilerToVM.cpp Sun Dec 08 11:21:49 2013 -0800 @@ -479,12 +479,6 @@ return Dependencies::find_finalizable_subclass(klass) != NULL; C2V_END -C2V_VMENTRY(void, initializeType, (JNIEnv *, jobject, jobject hotspot_klass)) - Klass* klass = java_lang_Class::as_Klass(HotSpotResolvedObjectType::javaMirror(hotspot_klass)); - assert(klass != NULL, "method must not be called for primitive types"); - InstanceKlass::cast(klass)->initialize(JavaThread::current()); -C2V_END - C2V_VMENTRY(jobject, getInstanceFields, (JNIEnv *, jobject, jobject klass)) ResourceMark rm; @@ -1015,7 +1009,6 @@ {CC"getInstanceFields", CC"("HS_RESOLVED_TYPE")["HS_RESOLVED_FIELD, FN_PTR(getInstanceFields)}, {CC"getMethods", CC"("HS_RESOLVED_TYPE")["HS_RESOLVED_METHOD, FN_PTR(getMethods)}, {CC"hasFinalizableSubclass", CC"("HS_RESOLVED_TYPE")Z", FN_PTR(hasFinalizableSubclass)}, - {CC"initializeType", CC"("HS_RESOLVED_TYPE")V", FN_PTR(initializeType)}, {CC"getMaxCallTargetOffset", CC"(J)J", FN_PTR(getMaxCallTargetOffset)}, {CC"getResolvedType", CC"("CLASS")"RESOLVED_TYPE, FN_PTR(getResolvedType)}, {CC"getMetaspaceMethod", CC"("REFLECT_METHOD"["HS_RESOLVED_TYPE")"METASPACE_METHOD, FN_PTR(getMetaspaceMethod)},