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