200 enum StaticLookupMode { find_static, skip_static }; |
200 enum StaticLookupMode { find_static, skip_static }; |
201 enum PrivateLookupMode { find_private, skip_private }; |
201 enum PrivateLookupMode { find_private, skip_private }; |
202 |
202 |
203 bool is_klass() const volatile { return true; } |
203 bool is_klass() const volatile { return true; } |
204 |
204 |
205 // super |
205 // super() cannot be InstanceKlass* -- Java arrays are covariant, and _super is used |
|
206 // to implement that. NB: the _super of "[Ljava/lang/Integer;" is "[Ljava/lang/Number;" |
|
207 // If this is not what your code expects, you're probably looking for Klass::java_super(). |
206 Klass* super() const { return _super; } |
208 Klass* super() const { return _super; } |
207 void set_super(Klass* k) { _super = k; } |
209 void set_super(Klass* k) { _super = k; } |
208 |
210 |
209 // initializes _super link, _primary_supers & _secondary_supers arrays |
211 // initializes _super link, _primary_supers & _secondary_supers arrays |
210 void initialize_supers(Klass* k, Array<Klass*>* transitive_interfaces, TRAPS); |
212 void initialize_supers(Klass* k, Array<InstanceKlass*>* transitive_interfaces, TRAPS); |
211 void initialize_supers_impl1(Klass* k); |
|
212 void initialize_supers_impl2(Klass* k); |
|
213 |
213 |
214 // klass-specific helper for initializing _secondary_supers |
214 // klass-specific helper for initializing _secondary_supers |
215 virtual GrowableArray<Klass*>* compute_secondary_supers(int num_extra_slots, |
215 virtual GrowableArray<Klass*>* compute_secondary_supers(int num_extra_slots, |
216 Array<Klass*>* transitive_interfaces); |
216 Array<InstanceKlass*>* transitive_interfaces); |
217 |
217 |
218 // java_super is the Java-level super type as specified by Class.getSuperClass. |
218 // java_super is the Java-level super type as specified by Class.getSuperClass. |
219 virtual Klass* java_super() const { return NULL; } |
219 virtual InstanceKlass* java_super() const { return NULL; } |
220 |
220 |
221 juint super_check_offset() const { return _super_check_offset; } |
221 juint super_check_offset() const { return _super_check_offset; } |
222 void set_super_check_offset(juint o) { _super_check_offset = o; } |
222 void set_super_check_offset(juint o) { _super_check_offset = o; } |
223 |
223 |
224 Klass* secondary_super_cache() const { return _secondary_super_cache; } |
224 Klass* secondary_super_cache() const { return _secondary_super_cache; } |
707 virtual void verify_on(outputStream* st); |
707 virtual void verify_on(outputStream* st); |
708 void verify() { verify_on(tty); } |
708 void verify() { verify_on(tty); } |
709 |
709 |
710 #ifndef PRODUCT |
710 #ifndef PRODUCT |
711 bool verify_vtable_index(int index); |
711 bool verify_vtable_index(int index); |
712 bool verify_itable_index(int index); |
|
713 #endif |
712 #endif |
714 |
713 |
715 virtual void oop_verify_on(oop obj, outputStream* st); |
714 virtual void oop_verify_on(oop obj, outputStream* st); |
716 |
715 |
717 static bool is_null(narrowKlass obj); |
716 static bool is_null(narrowKlass obj); |