changeset 18546:17b5e453ab41

replaced concrete types with interface types to support replay compilation
author Doug Simon <doug.simon@oracle.com>
date Wed, 26 Nov 2014 20:50:49 +0100
parents 0ec7e37451c7
children b1a6992a0e42
files graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/meta/HotSpotMetaAccessProvider.java graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/meta/HotSpotResolvedObjectType.java
diffstat 2 files changed, 10 insertions(+), 9 deletions(-) [+]
line wrap: on
line diff
--- 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;
--- 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);
 }