Mercurial > hg > truffle
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()"); |