# HG changeset patch # User Christian Wimmer # Date 1453761712 28800 # Node ID 87394b31a42e6dacd96d94d90e4ce8a303fd6601 # Parent d63506bb523746d86ea2d27ffdd2cded1b04ae4a Move lookup of Java class and hub from ResolvedJavaType to ConstantReflectionProvider diff -r d63506bb5237 -r 87394b31a42e jvmci/jdk.vm.ci.hotspot/src/jdk/vm/ci/hotspot/HotSpotConstantReflectionProvider.java --- a/jvmci/jdk.vm.ci.hotspot/src/jdk/vm/ci/hotspot/HotSpotConstantReflectionProvider.java Thu Jan 21 13:53:26 2016 -0800 +++ b/jvmci/jdk.vm.ci.hotspot/src/jdk/vm/ci/hotspot/HotSpotConstantReflectionProvider.java Mon Jan 25 14:41:52 2016 -0800 @@ -27,6 +27,7 @@ import java.lang.reflect.Array; +import jdk.vm.ci.common.JVMCIError; import jdk.vm.ci.meta.Constant; import jdk.vm.ci.meta.ConstantReflectionProvider; import jdk.vm.ci.meta.JavaConstant; @@ -361,4 +362,18 @@ } return dimensions; } + + @Override + public JavaConstant asJavaClass(ResolvedJavaType type) { + return HotSpotObjectConstantImpl.forObject(((HotSpotResolvedJavaType) type).mirror()); + } + + @Override + public Constant asObjectHub(ResolvedJavaType type) { + if (type instanceof HotSpotResolvedObjectType) { + return ((HotSpotResolvedObjectType) type).klass(); + } else { + throw JVMCIError.unimplemented(); + } + } } diff -r d63506bb5237 -r 87394b31a42e jvmci/jdk.vm.ci.hotspot/src/jdk/vm/ci/hotspot/HotSpotResolvedObjectTypeImpl.java --- a/jvmci/jdk.vm.ci.hotspot/src/jdk/vm/ci/hotspot/HotSpotResolvedObjectTypeImpl.java Thu Jan 21 13:53:26 2016 -0800 +++ b/jvmci/jdk.vm.ci.hotspot/src/jdk/vm/ci/hotspot/HotSpotResolvedObjectTypeImpl.java Mon Jan 25 14:41:52 2016 -0800 @@ -304,16 +304,6 @@ } @Override - public JavaConstant getJavaClass() { - return HotSpotObjectConstantImpl.forObject(mirror()); - } - - @Override - public Constant getObjectHub() { - return klass(); - } - - @Override public AssumptionResult hasFinalizableSubclass() { assert !isArray(); if (!compilerToVM().hasFinalizableSubclass(this)) { diff -r d63506bb5237 -r 87394b31a42e jvmci/jdk.vm.ci.hotspot/src/jdk/vm/ci/hotspot/HotSpotResolvedPrimitiveType.java --- a/jvmci/jdk.vm.ci.hotspot/src/jdk/vm/ci/hotspot/HotSpotResolvedPrimitiveType.java Thu Jan 21 13:53:26 2016 -0800 +++ b/jvmci/jdk.vm.ci.hotspot/src/jdk/vm/ci/hotspot/HotSpotResolvedPrimitiveType.java Mon Jan 25 14:41:52 2016 -0800 @@ -110,16 +110,6 @@ } @Override - public JavaConstant getObjectHub() { - throw JVMCIError.unimplemented(); - } - - @Override - public JavaConstant getJavaClass() { - throw JVMCIError.unimplemented(); - } - - @Override public AssumptionResult hasFinalizableSubclass() { return new AssumptionResult<>(false); } diff -r d63506bb5237 -r 87394b31a42e jvmci/jdk.vm.ci.meta/src/jdk/vm/ci/meta/ConstantReflectionProvider.java --- a/jvmci/jdk.vm.ci.meta/src/jdk/vm/ci/meta/ConstantReflectionProvider.java Thu Jan 21 13:53:26 2016 -0800 +++ b/jvmci/jdk.vm.ci.meta/src/jdk/vm/ci/meta/ConstantReflectionProvider.java Mon Jan 25 14:41:52 2016 -0800 @@ -151,4 +151,15 @@ * Gets raw memory access. */ MemoryAccessProvider getMemoryAccessProvider(); + + /** + * Gets the runtime representation of the {@link Class} object of this type. + */ + JavaConstant asJavaClass(ResolvedJavaType type); + + /** + * Gets the runtime representation of the "hub" of this type--that is, the closest part of the + * type representation which is typically stored in the object header. + */ + Constant asObjectHub(ResolvedJavaType type); } diff -r d63506bb5237 -r 87394b31a42e jvmci/jdk.vm.ci.meta/src/jdk/vm/ci/meta/ResolvedJavaType.java --- a/jvmci/jdk.vm.ci.meta/src/jdk/vm/ci/meta/ResolvedJavaType.java Thu Jan 21 13:53:26 2016 -0800 +++ b/jvmci/jdk.vm.ci.meta/src/jdk/vm/ci/meta/ResolvedJavaType.java Mon Jan 25 14:41:52 2016 -0800 @@ -34,17 +34,6 @@ */ public interface ResolvedJavaType extends JavaType, ModifiersProvider { /** - * Gets the runtime representation of the Java class object of this type. - */ - JavaConstant getJavaClass(); - - /** - * Gets the runtime representation of the "hub" of this type--that is, the closest part of the - * type representation which is typically stored in the object header. - */ - Constant getObjectHub(); - - /** * Checks whether this type has a finalizer method. * * @return {@code true} if this class has a finalizer