818 }
819
820 for (int i = 0; i < klasses()->length(); i++) {
821 const char* type;
822 const char* unlinked = "";
823 const char* kind = "";
824 const char* hidden = "";
825 const char* old = "";
826 const char* generated = "";
827 const char* aotlinked_msg = "";
828 const char* inited_msg = "";
829 Klass* k = get_buffered_addr(klasses()->at(i));
830 bool inited = false;
831 k->remove_java_mirror();
832 #ifdef _LP64
833 if (UseCompactObjectHeaders) {
834 Klass* requested_k = to_requested(k);
835 address narrow_klass_base = _requested_static_archive_bottom; // runtime encoding base == runtime mapping start
836 const int narrow_klass_shift = precomputed_narrow_klass_shift();
837 narrowKlass nk = CompressedKlassPointers::encode_not_null_without_asserts(requested_k, narrow_klass_base, narrow_klass_shift);
838 k->set_prototype_header(markWord::prototype().set_narrow_klass(nk));
839 }
840 #endif //_LP64
841 if (k->is_objArray_klass()) {
842 // InstanceKlass and TypeArrayKlass will in turn call remove_unshareable_info
843 // on their array classes.
844 num_obj_array_klasses ++;
845 type = "array";
846 } else if (k->is_typeArray_klass()) {
847 num_type_array_klasses ++;
848 type = "array";
849 k->remove_unshareable_info();
850 } else {
851 assert(k->is_instance_klass(), " must be");
852 InstanceKlass* ik = InstanceKlass::cast(k);
853 InstanceKlass* src_ik = get_source_addr(ik);
854 bool aotlinked = AOTClassLinker::is_candidate(src_ik);
855 inited = ik->has_aot_initialized_mirror();
856 ADD_COUNT(num_instance_klasses);
857 if (ik->is_hidden()) {
858 ADD_COUNT(num_hidden_klasses);
859 hidden = " hidden";
860 oop loader = k->class_loader();
861 if (loader == nullptr) {
862 type = "boot";
863 ADD_COUNT(num_boot_klasses);
864 } else if (loader == SystemDictionary::java_platform_loader()) {
865 type = "plat";
|
818 }
819
820 for (int i = 0; i < klasses()->length(); i++) {
821 const char* type;
822 const char* unlinked = "";
823 const char* kind = "";
824 const char* hidden = "";
825 const char* old = "";
826 const char* generated = "";
827 const char* aotlinked_msg = "";
828 const char* inited_msg = "";
829 Klass* k = get_buffered_addr(klasses()->at(i));
830 bool inited = false;
831 k->remove_java_mirror();
832 #ifdef _LP64
833 if (UseCompactObjectHeaders) {
834 Klass* requested_k = to_requested(k);
835 address narrow_klass_base = _requested_static_archive_bottom; // runtime encoding base == runtime mapping start
836 const int narrow_klass_shift = precomputed_narrow_klass_shift();
837 narrowKlass nk = CompressedKlassPointers::encode_not_null_without_asserts(requested_k, narrow_klass_base, narrow_klass_shift);
838 k->set_prototype_header_klass(nk);
839 }
840 #endif //_LP64
841 if (k->is_flatArray_klass()) {
842 num_obj_array_klasses ++;
843 type = "flat array";
844 } else if (k->is_refArray_klass()) {
845 num_obj_array_klasses ++;
846 type = "ref array";
847 } else if (k->is_objArray_klass()) {
848 // InstanceKlass and TypeArrayKlass will in turn call remove_unshareable_info
849 // on their array classes.
850 num_obj_array_klasses ++;
851 type = "obj array";
852 } else if (k->is_typeArray_klass()) {
853 num_type_array_klasses ++;
854 type = "array";
855 k->remove_unshareable_info();
856 } else {
857 assert(k->is_instance_klass(), " must be");
858 InstanceKlass* ik = InstanceKlass::cast(k);
859 InstanceKlass* src_ik = get_source_addr(ik);
860 bool aotlinked = AOTClassLinker::is_candidate(src_ik);
861 inited = ik->has_aot_initialized_mirror();
862 ADD_COUNT(num_instance_klasses);
863 if (ik->is_hidden()) {
864 ADD_COUNT(num_hidden_klasses);
865 hidden = " hidden";
866 oop loader = k->class_loader();
867 if (loader == nullptr) {
868 type = "boot";
869 ADD_COUNT(num_boot_klasses);
870 } else if (loader == SystemDictionary::java_platform_loader()) {
871 type = "plat";
|