186 /** These will return null instead of allocating on the heap */ |
186 /** These will return null instead of allocating on the heap */ |
187 public Klass arrayKlassOrNull(int rank) { return arrayKlassImpl(true, rank); } |
187 public Klass arrayKlassOrNull(int rank) { return arrayKlassImpl(true, rank); } |
188 public Klass arrayKlassOrNull() { return arrayKlassImpl(true); } |
188 public Klass arrayKlassOrNull() { return arrayKlassImpl(true); } |
189 |
189 |
190 public Klass arrayKlassImpl(boolean orNull, int rank) { |
190 public Klass arrayKlassImpl(boolean orNull, int rank) { |
191 throw new RuntimeException("array_klass should be dispatched to InstanceKlass, objArrayKlass or typeArrayKlass"); |
191 throw new RuntimeException("array_klass should be dispatched to InstanceKlass, ObjArrayKlass or TypeArrayKlass"); |
192 } |
192 } |
193 |
193 |
194 public Klass arrayKlassImpl(boolean orNull) { |
194 public Klass arrayKlassImpl(boolean orNull) { |
195 throw new RuntimeException("array_klass should be dispatched to InstanceKlass, objArrayKlass or typeArrayKlass"); |
195 throw new RuntimeException("array_klass should be dispatched to InstanceKlass, ObjArrayKlass or TypeArrayKlass"); |
196 } |
196 } |
197 |
197 |
198 // This returns the name in the form java/lang/String which isn't really a signature |
198 // This returns the name in the form java/lang/String which isn't really a signature |
199 // The subclasses override this to produce the correct form, eg |
199 // The subclasses override this to produce the correct form, eg |
200 // Ljava/lang/String; For ArrayKlasses getName itself is the signature. |
200 // Ljava/lang/String; For ArrayKlasses getName itself is the signature. |