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