791 }
792
793 for (int i = 0; i < klasses()->length(); i++) {
794 const char* type;
795 const char* unlinked = "";
796 const char* kind = "";
797 const char* hidden = "";
798 const char* old = "";
799 const char* generated = "";
800 const char* aotlinked_msg = "";
801 const char* inited_msg = "";
802 Klass* k = get_buffered_addr(klasses()->at(i));
803 bool inited = false;
804 k->remove_java_mirror();
805 #ifdef _LP64
806 if (UseCompactObjectHeaders) {
807 Klass* requested_k = to_requested(k);
808 address narrow_klass_base = _requested_static_archive_bottom; // runtime encoding base == runtime mapping start
809 const int narrow_klass_shift = precomputed_narrow_klass_shift();
810 narrowKlass nk = CompressedKlassPointers::encode_not_null_without_asserts(requested_k, narrow_klass_base, narrow_klass_shift);
811 k->set_prototype_header(markWord::prototype().set_narrow_klass(nk));
812 }
813 #endif //_LP64
814 if (k->is_objArray_klass()) {
815 // InstanceKlass and TypeArrayKlass will in turn call remove_unshareable_info
816 // on their array classes.
817 num_obj_array_klasses ++;
818 type = "array";
819 } else if (k->is_typeArray_klass()) {
820 num_type_array_klasses ++;
821 type = "array";
822 k->remove_unshareable_info();
823 } else {
824 assert(k->is_instance_klass(), " must be");
825 InstanceKlass* ik = InstanceKlass::cast(k);
826 InstanceKlass* src_ik = get_source_addr(ik);
827 bool aotlinked = AOTClassLinker::is_candidate(src_ik);
828 inited = ik->has_aot_initialized_mirror();
829 ADD_COUNT(num_instance_klasses);
830 if (ik->is_hidden()) {
831 ADD_COUNT(num_hidden_klasses);
832 hidden = " hidden";
833 oop loader = k->class_loader();
834 if (loader == nullptr) {
835 type = "boot";
836 ADD_COUNT(num_boot_klasses);
837 } else if (loader == SystemDictionary::java_platform_loader()) {
838 type = "plat";
|
791 }
792
793 for (int i = 0; i < klasses()->length(); i++) {
794 const char* type;
795 const char* unlinked = "";
796 const char* kind = "";
797 const char* hidden = "";
798 const char* old = "";
799 const char* generated = "";
800 const char* aotlinked_msg = "";
801 const char* inited_msg = "";
802 Klass* k = get_buffered_addr(klasses()->at(i));
803 bool inited = false;
804 k->remove_java_mirror();
805 #ifdef _LP64
806 if (UseCompactObjectHeaders) {
807 Klass* requested_k = to_requested(k);
808 address narrow_klass_base = _requested_static_archive_bottom; // runtime encoding base == runtime mapping start
809 const int narrow_klass_shift = precomputed_narrow_klass_shift();
810 narrowKlass nk = CompressedKlassPointers::encode_not_null_without_asserts(requested_k, narrow_klass_base, narrow_klass_shift);
811 k->set_prototype_header_klass(nk);
812 }
813 #endif //_LP64
814 if (k->is_flatArray_klass()) {
815 num_obj_array_klasses ++;
816 type = "flat array";
817 } else if (k->is_refArray_klass()) {
818 num_obj_array_klasses ++;
819 type = "ref array";
820 } else if (k->is_objArray_klass()) {
821 // InstanceKlass and TypeArrayKlass will in turn call remove_unshareable_info
822 // on their array classes.
823 num_obj_array_klasses ++;
824 type = "obj array";
825 } else if (k->is_typeArray_klass()) {
826 num_type_array_klasses ++;
827 type = "array";
828 k->remove_unshareable_info();
829 } else {
830 assert(k->is_instance_klass(), " must be");
831 InstanceKlass* ik = InstanceKlass::cast(k);
832 InstanceKlass* src_ik = get_source_addr(ik);
833 bool aotlinked = AOTClassLinker::is_candidate(src_ik);
834 inited = ik->has_aot_initialized_mirror();
835 ADD_COUNT(num_instance_klasses);
836 if (ik->is_hidden()) {
837 ADD_COUNT(num_hidden_klasses);
838 hidden = " hidden";
839 oop loader = k->class_loader();
840 if (loader == nullptr) {
841 type = "boot";
842 ADD_COUNT(num_boot_klasses);
843 } else if (loader == SystemDictionary::java_platform_loader()) {
844 type = "plat";
|