# HG changeset patch # User Gilles Duboscq # Date 1400336959 -7200 # Node ID 920b7bb058a67d8390e6616eddea61424a8c9dbb # Parent 59a85df7a418af71c92a16b526e66c456113a804 Simplify HotSpotUnresolvedJavaType, harmonize toString for HotSpotUnresolvedJavaType and HotSpotResolvedObjectType diff -r 59a85df7a418 -r 920b7bb058a6 graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/meta/HotSpotConstantPool.java --- a/graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/meta/HotSpotConstantPool.java Sat May 17 14:58:33 2014 +0200 +++ b/graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/meta/HotSpotConstantPool.java Sat May 17 16:29:19 2014 +0200 @@ -416,7 +416,7 @@ if ((metaspacePointer & config.compilerToVMSymbolTag) != 0) { final long metaspaceSymbol = metaspacePointer & ~config.compilerToVMSymbolTag; String name = new HotSpotSymbol(metaspaceSymbol).asString(); - return HotSpotUnresolvedJavaType.create(name); + return HotSpotUnresolvedJavaType.create("L" + name + ";"); } else { assert (metaspacePointer & config.compilerToVMKlassTag) == 0; return HotSpotResolvedObjectType.fromMetaspaceKlass(metaspacePointer); diff -r 59a85df7a418 -r 920b7bb058a6 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 Sat May 17 14:58:33 2014 +0200 +++ b/graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/meta/HotSpotResolvedObjectType.java Sat May 17 16:29:19 2014 +0200 @@ -750,12 +750,6 @@ @Override public String toString() { - String simpleName; - if (isArray() || isInterface()) { - simpleName = getName(); - } else { - simpleName = getName().substring(1, getName().length() - 1); - } - return "HotSpotType<" + simpleName + ", resolved>"; + return "HotSpotType<" + getName() + ", resolved>"; } } diff -r 59a85df7a418 -r 920b7bb058a6 graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/meta/HotSpotUnresolvedJavaType.java --- a/graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/meta/HotSpotUnresolvedJavaType.java Sat May 17 14:58:33 2014 +0200 +++ b/graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/meta/HotSpotUnresolvedJavaType.java Sat May 17 16:29:19 2014 +0200 @@ -32,56 +32,28 @@ public class HotSpotUnresolvedJavaType extends HotSpotJavaType { private static final long serialVersionUID = -2320936267633521314L; - public final String simpleName; - public final int dimensions; - public HotSpotUnresolvedJavaType(String name, String simpleName, int dimensions) { + public HotSpotUnresolvedJavaType(String name) { super(name); - assert dimensions >= 0; - this.simpleName = simpleName; - this.dimensions = dimensions; } /** * Creates an unresolved type for a valid {@link JavaType#getName() type name}. */ public static HotSpotUnresolvedJavaType create(String name) { - int dims = 0; - int startIndex = 0; - while (name.charAt(startIndex) == '[') { - startIndex++; - dims++; - } - - // Decode name if necessary. - if (name.charAt(name.length() - 1) == ';') { - assert name.charAt(startIndex) == 'L'; - return new HotSpotUnresolvedJavaType(name, name.substring(startIndex + 1, name.length() - 1), dims); - } else { - return new HotSpotUnresolvedJavaType(HotSpotUnresolvedJavaType.getFullName(name, dims), name, dims); - } - } - - public static String getFullName(String name, int dimensions) { - StringBuilder str = new StringBuilder(name.length() + dimensions + 2); - for (int i = 0; i < dimensions; i++) { - str.append('['); - } - str.append('L').append(name).append(';'); - return str.toString(); + assert name.charAt(name.length() - 1) == ';' : name; + return new HotSpotUnresolvedJavaType(name); } @Override public JavaType getComponentType() { - assert dimensions > 0 : "no array class" + getName(); - String name = getFullName(getName(), dimensions - 1); - return new HotSpotUnresolvedJavaType(name, simpleName, dimensions - 1); + assert getName().charAt(0) == '[' : "no array class" + getName(); + return new HotSpotUnresolvedJavaType(getName().substring(1)); } @Override public JavaType getArrayClass() { - String name = getFullName(getName(), dimensions + 1); - return new HotSpotUnresolvedJavaType(name, simpleName, dimensions + 1); + return new HotSpotUnresolvedJavaType('[' + getName()); } @Override @@ -91,7 +63,7 @@ @Override public int hashCode() { - return simpleName.hashCode(); + return getName().hashCode(); } @Override @@ -103,12 +75,12 @@ return false; } HotSpotUnresolvedJavaType that = (HotSpotUnresolvedJavaType) obj; - return this.simpleName.equals(that.simpleName) && this.dimensions == that.dimensions; + return this.getName().equals(that.getName()); } @Override public String toString() { - return "HotSpotType<" + simpleName + ", unresolved>"; + return "HotSpotType<" + getName() + ", unresolved>"; } @Override