< prev index next >

src/hotspot/share/oops/arrayKlass.cpp

Print this page

*** 47,57 **** int size = header_size + vtable_len; return align_metadata_size(size); } ! Klass* ArrayKlass::java_super() const { if (super() == NULL) return NULL; // bootstrap case // Array klasses have primary supertypes which are not reported to Java. // Example super chain: String[][] -> Object[][] -> Object[] -> Object return SystemDictionary::Object_klass(); } --- 47,57 ---- int size = header_size + vtable_len; return align_metadata_size(size); } ! InstanceKlass* ArrayKlass::java_super() const { if (super() == NULL) return NULL; // bootstrap case // Array klasses have primary supertypes which are not reported to Java. // Example super chain: String[][] -> Object[][] -> Object[] -> Object return SystemDictionary::Object_klass(); }
*** 88,98 **** _lower_dimension(NULL) { // Arrays don't add any new methods, so their vtable is the same size as // the vtable of klass Object. set_vtable_length(Universe::base_vtable_size()); set_name(name); ! set_super(Universe::is_bootstrapping() ? (Klass*)NULL : SystemDictionary::Object_klass()); set_layout_helper(Klass::_lh_neutral_value); set_is_cloneable(); // All arrays are considered to be cloneable (See JLS 20.1.5) JFR_ONLY(INIT_ID(this);) } --- 88,98 ---- _lower_dimension(NULL) { // Arrays don't add any new methods, so their vtable is the same size as // the vtable of klass Object. set_vtable_length(Universe::base_vtable_size()); set_name(name); ! set_super(Universe::is_bootstrapping() ? NULL : SystemDictionary::Object_klass()); set_layout_helper(Klass::_lh_neutral_value); set_is_cloneable(); // All arrays are considered to be cloneable (See JLS 20.1.5) JFR_ONLY(INIT_ID(this);) }
*** 111,121 **** oop module = (module_entry != NULL) ? module_entry->module() : (oop)NULL; java_lang_Class::create_mirror(k, Handle(THREAD, k->class_loader()), Handle(THREAD, module), Handle(), CHECK); } GrowableArray<Klass*>* ArrayKlass::compute_secondary_supers(int num_extra_slots, ! Array<Klass*>* transitive_interfaces) { // interfaces = { cloneable_klass, serializable_klass }; assert(num_extra_slots == 0, "sanity of primitive array type"); assert(transitive_interfaces == NULL, "sanity"); // Must share this for correct bootstrapping! set_secondary_supers(Universe::the_array_interfaces_array()); --- 111,121 ---- oop module = (module_entry != NULL) ? module_entry->module() : (oop)NULL; java_lang_Class::create_mirror(k, Handle(THREAD, k->class_loader()), Handle(THREAD, module), Handle(), CHECK); } GrowableArray<Klass*>* ArrayKlass::compute_secondary_supers(int num_extra_slots, ! Array<InstanceKlass*>* transitive_interfaces) { // interfaces = { cloneable_klass, serializable_klass }; assert(num_extra_slots == 0, "sanity of primitive array type"); assert(transitive_interfaces == NULL, "sanity"); // Must share this for correct bootstrapping! set_secondary_supers(Universe::the_array_interfaces_array());
< prev index next >