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