comparison c1x4hotspotsrc/HotSpotVM/src/com/sun/hotspot/c1x/HotSpotTypeUnresolved.java @ 2284:569d3fe7d65c

non-static VMEntries and VMExits, CompilationServer simplifications
author Lukas Stadler <lukas.stadler@jku.at>
date Thu, 07 Apr 2011 15:32:25 +0200
parents 99ad52189524
children 6190d20bd6d6
comparison
equal deleted inserted replaced
2282:0309d394eb5f 2284:569d3fe7d65c
34 public final int dimensions; 34 public final int dimensions;
35 35
36 /** 36 /**
37 * Creates a new unresolved type for a specified type descriptor. 37 * Creates a new unresolved type for a specified type descriptor.
38 */ 38 */
39 public HotSpotTypeUnresolved(String name) { 39 public HotSpotTypeUnresolved(Compiler compiler, String name) {
40 super(compiler);
40 assert name.length() > 0 : "name cannot be empty"; 41 assert name.length() > 0 : "name cannot be empty";
41 42
42 int dimensions = 0; 43 int dimensions = 0;
43 // Decode name if necessary. 44 // Decode name if necessary.
44 if (name.charAt(name.length() - 1) == ';') { 45 if (name.charAt(name.length() - 1) == ';') {
56 } 57 }
57 58
58 this.dimensions = dimensions; 59 this.dimensions = dimensions;
59 } 60 }
60 61
61 public HotSpotTypeUnresolved(String name, int dimensions) { 62 public HotSpotTypeUnresolved(Compiler compiler, String name, int dimensions) {
63 super(compiler);
62 assert dimensions >= 0; 64 assert dimensions >= 0;
63 this.simpleName = name; 65 this.simpleName = name;
64 this.dimensions = dimensions; 66 this.dimensions = dimensions;
65 this.name = getFullName(name, dimensions); 67 this.name = getFullName(name, dimensions);
66 } 68 }
140 } 142 }
141 143
142 @Override 144 @Override
143 public RiType componentType() { 145 public RiType componentType() {
144 assert isArrayClass() : "no array class" + name(); 146 assert isArrayClass() : "no array class" + name();
145 return new HotSpotTypeUnresolved(simpleName, dimensions - 1); 147 return new HotSpotTypeUnresolved(compiler, simpleName, dimensions - 1);
146 } 148 }
147 149
148 @Override 150 @Override
149 public RiType exactType() { 151 public RiType exactType() {
150 throw unresolved("exactType()"); 152 throw unresolved("exactType()");
151 } 153 }
152 154
153 @Override 155 @Override
154 public RiType arrayOf() { 156 public RiType arrayOf() {
155 return new HotSpotTypeUnresolved(simpleName, dimensions + 1); 157 return new HotSpotTypeUnresolved(compiler, simpleName, dimensions + 1);
156 } 158 }
157 159
158 @Override 160 @Override
159 public RiMethod resolveMethodImpl(RiMethod method) { 161 public RiMethod resolveMethodImpl(RiMethod method) {
160 throw unresolved("resolveMethodImpl()"); 162 throw unresolved("resolveMethodImpl()");