changeset 18545:0ec7e37451c7

added HotSpotObjectConstant.getType() and restricted access to some static methods in HotSpotObjectConstantImpl
author Doug Simon <doug.simon@oracle.com>
date Wed, 26 Nov 2014 20:48:16 +0100
parents 7bbc9fc1e7f9
children 17b5e453ab41
files graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/meta/HotSpotObjectConstant.java graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/meta/HotSpotObjectConstantImpl.java
diffstat 2 files changed, 14 insertions(+), 3 deletions(-) [+]
line wrap: on
line diff
--- a/graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/meta/HotSpotObjectConstant.java	Wed Nov 26 20:38:48 2014 +0100
+++ b/graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/meta/HotSpotObjectConstant.java	Wed Nov 26 20:48:16 2014 +0100
@@ -43,6 +43,11 @@
     boolean isCompressed();
 
     /**
+     * Gets the resolved Java type of the object represented by this constant.
+     */
+    HotSpotResolvedObjectType getType();
+
+    /**
      * Gets the result of {@link Class#getClassLoader()} for the {@link Class} object represented by
      * this constant.
      *
--- a/graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/meta/HotSpotObjectConstantImpl.java	Wed Nov 26 20:38:48 2014 +0100
+++ b/graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/meta/HotSpotObjectConstantImpl.java	Wed Nov 26 20:48:16 2014 +0100
@@ -22,6 +22,8 @@
  */
 package com.oracle.graal.hotspot.meta;
 
+import static com.oracle.graal.hotspot.meta.HotSpotResolvedObjectTypeImpl.*;
+
 import java.lang.invoke.*;
 
 import com.oracle.graal.api.code.*;
@@ -43,7 +45,7 @@
         return forObject(object, false);
     }
 
-    public static JavaConstant forObject(Object object, boolean compressed) {
+    static JavaConstant forObject(Object object, boolean compressed) {
         if (object == null) {
             return compressed ? HotSpotCompressedNullConstant.COMPRESSED_NULL : JavaConstant.NULL_POINTER;
         } else {
@@ -51,7 +53,7 @@
         }
     }
 
-    public static JavaConstant forStableArray(Object object, int stableDimension, boolean isDefaultStable) {
+    static JavaConstant forStableArray(Object object, int stableDimension, boolean isDefaultStable) {
         if (object == null) {
             return JavaConstant.NULL_POINTER;
         } else {
@@ -68,7 +70,7 @@
         }
     }
 
-    public static Object asBoxedValue(Constant constant) {
+    static Object asBoxedValue(Constant constant) {
         if (JavaConstant.isNull(constant)) {
             return null;
         } else if (constant instanceof HotSpotObjectConstantImpl) {
@@ -135,6 +137,10 @@
         return new HotSpotObjectConstantImpl(object, false, stableDimension, isDefaultStable);
     }
 
+    public HotSpotResolvedObjectType getType() {
+        return fromObjectClass(object.getClass());
+    }
+
     public JavaConstant getClassLoader() {
         if (object instanceof Class) {
             /*