# HG changeset patch # User Doug Simon # Date 1417031449 -3600 # Node ID 17b5e453ab41a1e897117a86c905d5e1c6e77f66 # Parent 0ec7e37451c7b0c40bcc7d700f2795c0c7eda377 replaced concrete types with interface types to support replay compilation diff -r 0ec7e37451c7 -r 17b5e453ab41 graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/meta/HotSpotMetaAccessProvider.java --- a/graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/meta/HotSpotMetaAccessProvider.java Wed Nov 26 20:48:16 2014 +0100 +++ b/graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/meta/HotSpotMetaAccessProvider.java Wed Nov 26 20:50:49 2014 +0100 @@ -46,19 +46,18 @@ this.runtime = runtime; } - public HotSpotResolvedJavaType lookupJavaType(Class clazz) { + public ResolvedJavaType lookupJavaType(Class clazz) { if (clazz == null) { throw new IllegalArgumentException("Class parameter was null"); } - return fromClass(clazz); + return runtime.fromClass(clazz); } - public HotSpotResolvedObjectTypeImpl lookupJavaType(JavaConstant constant) { + public HotSpotResolvedObjectType lookupJavaType(JavaConstant constant) { if (constant.isNull() || !(constant instanceof HotSpotObjectConstant)) { return null; } - Object o = ((HotSpotObjectConstantImpl) constant).object(); - return fromObjectClass(o.getClass()); + return ((HotSpotObjectConstant) constant).getType(); } public Signature parseMethodDescriptor(String signature) { @@ -106,11 +105,11 @@ final int modifiers = reflectionField.getModifiers(); final long offset = Modifier.isStatic(modifiers) ? unsafe.staticFieldOffset(reflectionField) : unsafe.objectFieldOffset(reflectionField); - HotSpotResolvedObjectTypeImpl holder = fromObjectClass(fieldHolder); - HotSpotResolvedJavaType type = fromClass(fieldType); + HotSpotResolvedObjectType holder = fromObjectClass(fieldHolder); + JavaType type = fromClass(fieldType); if (offset != -1) { - HotSpotResolvedObjectTypeImpl resolved = holder; + HotSpotResolvedObjectType resolved = holder; return resolved.createField(name, type, offset, modifiers); } else { throw GraalInternalError.shouldNotReachHere("unresolved field " + reflectionField); @@ -286,7 +285,7 @@ @Override public long getMemorySize(JavaConstant constant) { if (constant.getKind() == Kind.Object) { - HotSpotResolvedObjectTypeImpl lookupJavaType = this.lookupJavaType(constant); + HotSpotResolvedObjectType lookupJavaType = lookupJavaType(constant); if (lookupJavaType == null) { return 0; diff -r 0ec7e37451c7 -r 17b5e453ab41 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 Wed Nov 26 20:48:16 2014 +0100 +++ b/graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/meta/HotSpotResolvedObjectType.java Wed Nov 26 20:50:49 2014 +0100 @@ -91,4 +91,6 @@ HotSpotResolvedObjectType getEnclosingType(); ResolvedJavaMethod getClassInitializer(); + + ResolvedJavaField createField(String name, JavaType type, long offset, int modifiers); }