Mercurial > hg > truffle
changeset 16491:4d7a9829315e
moved isJavaLangObject(ResolvedJavaType type) from MetaUtil to be a default method in ResolvedJavaType
author | Doug Simon <doug.simon@oracle.com> |
---|---|
date | Fri, 11 Jul 2014 00:27:23 +0200 |
parents | cac0a7d1c325 |
children | 8853b9304083 |
files | graal/com.oracle.graal.api.meta.test/src/com/oracle/graal/api/meta/test/TestResolvedJavaType.java graal/com.oracle.graal.api.meta/src/com/oracle/graal/api/meta/MetaUtil.java graal/com.oracle.graal.api.meta/src/com/oracle/graal/api/meta/ResolvedJavaType.java graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/meta/HotSpotResolvedObjectType.java graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/meta/HotSpotResolvedPrimitiveType.java graal/com.oracle.graal.replacements/src/com/oracle/graal/replacements/DefaultJavaLoweringProvider.java |
diffstat | 6 files changed, 22 insertions(+), 11 deletions(-) [+] |
line wrap: on
line diff
--- a/graal/com.oracle.graal.api.meta.test/src/com/oracle/graal/api/meta/test/TestResolvedJavaType.java Thu Jul 10 23:56:39 2014 +0200 +++ b/graal/com.oracle.graal.api.meta.test/src/com/oracle/graal/api/meta/test/TestResolvedJavaType.java Fri Jul 11 00:27:23 2014 +0200 @@ -709,6 +709,7 @@ "getSourceFileName", "getClassFilePath", "isLocal", + "isJavaLangObject", "isMember", "getElementalType", "getEnclosingType"
--- a/graal/com.oracle.graal.api.meta/src/com/oracle/graal/api/meta/MetaUtil.java Thu Jul 10 23:56:39 2014 +0200 +++ b/graal/com.oracle.graal.api.meta/src/com/oracle/graal/api/meta/MetaUtil.java Fri Jul 11 00:27:23 2014 +0200 @@ -130,15 +130,6 @@ } /** - * Returns true if the specified typed is exactly the type {@link java.lang.Object}. - */ - public static boolean isJavaLangObject(ResolvedJavaType type) { - boolean result = type.getSuperclass() == null && !type.isInterface() && type.getKind() == Kind.Object; - assert result == type.getName().equals("Ljava/lang/Object;") : type.getName(); - return result; - } - - /** * Calls {@link JavaType#resolve(ResolvedJavaType)} on an array of types. */ public static ResolvedJavaType[] resolveJavaTypes(JavaType[] types, ResolvedJavaType accessingClass) { @@ -185,7 +176,7 @@ return name.substring(index + 1); } - public static String internalNameToJava(String name, boolean qualified, boolean classForNameCompatible) { + static String internalNameToJava(String name, boolean qualified, boolean classForNameCompatible) { switch (name.charAt(0)) { case 'L': { String result = name.substring(1, name.length() - 1).replace('/', '.');
--- a/graal/com.oracle.graal.api.meta/src/com/oracle/graal/api/meta/ResolvedJavaType.java Thu Jul 10 23:56:39 2014 +0200 +++ b/graal/com.oracle.graal.api.meta/src/com/oracle/graal/api/meta/ResolvedJavaType.java Fri Jul 11 00:27:23 2014 +0200 @@ -141,6 +141,15 @@ boolean isAssignableFrom(ResolvedJavaType other); /** + * Returns true if this type is exactly the type {@link java.lang.Object}. + */ + default boolean isJavaLangObject() { + boolean result = getSuperclass() == null && !isInterface() && getKind() == Kind.Object; + assert result == getName().equals("Ljava/lang/Object;") : getName(); + return result; + } + + /** * Checks whether the specified object is an instance of this type. * * @param obj the object to test
--- a/graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/meta/HotSpotResolvedObjectType.java Thu Jul 10 23:56:39 2014 +0200 +++ b/graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/meta/HotSpotResolvedObjectType.java Fri Jul 11 00:27:23 2014 +0200 @@ -348,6 +348,11 @@ } @Override + public boolean isJavaLangObject() { + return javaClass.equals(Object.class); + } + + @Override public Kind getKind() { return Kind.Object; }
--- a/graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/meta/HotSpotResolvedPrimitiveType.java Thu Jul 10 23:56:39 2014 +0200 +++ b/graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/meta/HotSpotResolvedPrimitiveType.java Fri Jul 11 00:27:23 2014 +0200 @@ -163,6 +163,11 @@ } @Override + public boolean isJavaLangObject() { + return false; + } + + @Override public ResolvedJavaMethod resolveMethod(ResolvedJavaMethod method, ResolvedJavaType callerType) { return null; }
--- a/graal/com.oracle.graal.replacements/src/com/oracle/graal/replacements/DefaultJavaLoweringProvider.java Thu Jul 10 23:56:39 2014 +0200 +++ b/graal/com.oracle.graal.replacements/src/com/oracle/graal/replacements/DefaultJavaLoweringProvider.java Fri Jul 11 00:27:23 2014 +0200 @@ -183,7 +183,7 @@ ResolvedJavaType arrayType = StampTool.typeOrNull(array); if (arrayType != null && StampTool.isExactType(array)) { ResolvedJavaType elementType = arrayType.getComponentType(); - if (!MetaUtil.isJavaLangObject(elementType)) { + if (!elementType.isJavaLangObject()) { checkCastNode = graph.add(new CheckCastNode(elementType, value, null, true)); graph.addBeforeFixed(storeIndexed, checkCastNode); value = checkCastNode;