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