22 */
23 package jdk.vm.ci.hotspot;
24
25 import java.lang.reflect.Array;
26 import java.util.Objects;
27
28 import jdk.internal.vm.annotation.Stable;
29 import jdk.vm.ci.common.JVMCIError;
30 import jdk.vm.ci.meta.Constant;
31 import jdk.vm.ci.meta.ConstantReflectionProvider;
32 import jdk.vm.ci.meta.JavaConstant;
33 import jdk.vm.ci.meta.JavaKind;
34 import jdk.vm.ci.meta.MemoryAccessProvider;
35 import jdk.vm.ci.meta.MethodHandleAccessProvider;
36 import jdk.vm.ci.meta.ResolvedJavaField;
37 import jdk.vm.ci.meta.ResolvedJavaType;
38
39 /**
40 * HotSpot implementation of {@link ConstantReflectionProvider}.
41 */
42 public class HotSpotConstantReflectionProvider implements ConstantReflectionProvider, HotSpotProxified {
43
44 protected final HotSpotJVMCIRuntimeProvider runtime;
45 protected final HotSpotMethodHandleAccessProvider methodHandleAccess;
46 protected final HotSpotMemoryAccessProviderImpl memoryAccess;
47
48 public HotSpotConstantReflectionProvider(HotSpotJVMCIRuntimeProvider runtime) {
49 this.runtime = runtime;
50 this.methodHandleAccess = new HotSpotMethodHandleAccessProvider(this);
51 this.memoryAccess = new HotSpotMemoryAccessProviderImpl(runtime);
52 }
53
54 public MethodHandleAccessProvider getMethodHandleAccess() {
55 return methodHandleAccess;
56 }
57
58 @Override
59 public MemoryAccessProvider getMemoryAccessProvider() {
60 return memoryAccess;
61 }
62
|
22 */
23 package jdk.vm.ci.hotspot;
24
25 import java.lang.reflect.Array;
26 import java.util.Objects;
27
28 import jdk.internal.vm.annotation.Stable;
29 import jdk.vm.ci.common.JVMCIError;
30 import jdk.vm.ci.meta.Constant;
31 import jdk.vm.ci.meta.ConstantReflectionProvider;
32 import jdk.vm.ci.meta.JavaConstant;
33 import jdk.vm.ci.meta.JavaKind;
34 import jdk.vm.ci.meta.MemoryAccessProvider;
35 import jdk.vm.ci.meta.MethodHandleAccessProvider;
36 import jdk.vm.ci.meta.ResolvedJavaField;
37 import jdk.vm.ci.meta.ResolvedJavaType;
38
39 /**
40 * HotSpot implementation of {@link ConstantReflectionProvider}.
41 */
42 public class HotSpotConstantReflectionProvider implements ConstantReflectionProvider {
43
44 protected final HotSpotJVMCIRuntimeProvider runtime;
45 protected final HotSpotMethodHandleAccessProvider methodHandleAccess;
46 protected final HotSpotMemoryAccessProviderImpl memoryAccess;
47
48 public HotSpotConstantReflectionProvider(HotSpotJVMCIRuntimeProvider runtime) {
49 this.runtime = runtime;
50 this.methodHandleAccess = new HotSpotMethodHandleAccessProvider(this);
51 this.memoryAccess = new HotSpotMemoryAccessProviderImpl(runtime);
52 }
53
54 public MethodHandleAccessProvider getMethodHandleAccess() {
55 return methodHandleAccess;
56 }
57
58 @Override
59 public MemoryAccessProvider getMemoryAccessProvider() {
60 return memoryAccess;
61 }
62
|