< prev index next >

src/hotspot/share/oops/constantPool.cpp

Print this page

 501 }
 502 
 503 static const char* get_type(Klass* k) {
 504   const char* type;
 505   Klass* src_k;
 506   if (ArchiveBuilder::is_active() && ArchiveBuilder::current()->is_in_buffer_space(k)) {
 507     src_k = ArchiveBuilder::current()->get_source_addr(k);
 508   } else {
 509     src_k = k;
 510   }
 511 
 512   if (src_k->is_objArray_klass()) {
 513     src_k = ObjArrayKlass::cast(src_k)->bottom_klass();
 514     assert(!src_k->is_objArray_klass(), "sanity");
 515   }
 516 
 517   if (src_k->is_typeArray_klass()) {
 518     type = "prim";
 519   } else {
 520     InstanceKlass* src_ik = InstanceKlass::cast(src_k);



 521     oop loader = src_ik->class_loader();
 522     if (loader == nullptr) {
 523       type = "boot";
 524     } else if (loader == SystemDictionary::java_platform_loader()) {
 525       type = "plat";
 526     } else if (loader == SystemDictionary::java_system_loader()) {
 527       type = "app";
 528     } else {
 529       type = "unreg";
 530     }
 531   }
 532 
 533   return type;
 534 }
 535 
 536 void ConstantPool::remove_unshareable_entries() {
 537   ResourceMark rm;
 538   log_info(cds, resolve)("Archiving CP entries for %s", pool_holder()->name()->as_C_string());
 539   for (int cp_index = 1; cp_index < length(); cp_index++) { // cp_index 0 is unused
 540     int cp_tag = tag_at(cp_index).value();

 501 }
 502 
 503 static const char* get_type(Klass* k) {
 504   const char* type;
 505   Klass* src_k;
 506   if (ArchiveBuilder::is_active() && ArchiveBuilder::current()->is_in_buffer_space(k)) {
 507     src_k = ArchiveBuilder::current()->get_source_addr(k);
 508   } else {
 509     src_k = k;
 510   }
 511 
 512   if (src_k->is_objArray_klass()) {
 513     src_k = ObjArrayKlass::cast(src_k)->bottom_klass();
 514     assert(!src_k->is_objArray_klass(), "sanity");
 515   }
 516 
 517   if (src_k->is_typeArray_klass()) {
 518     type = "prim";
 519   } else {
 520     InstanceKlass* src_ik = InstanceKlass::cast(src_k);
 521     if (CDSConfig::is_dumping_final_static_archive() && src_ik->class_loader_data() == nullptr) {
 522       return "unreg";
 523     }
 524     oop loader = src_ik->class_loader();
 525     if (loader == nullptr) {
 526       type = "boot";
 527     } else if (loader == SystemDictionary::java_platform_loader()) {
 528       type = "plat";
 529     } else if (loader == SystemDictionary::java_system_loader()) {
 530       type = "app";
 531     } else {
 532       type = "unreg";
 533     }
 534   }
 535 
 536   return type;
 537 }
 538 
 539 void ConstantPool::remove_unshareable_entries() {
 540   ResourceMark rm;
 541   log_info(cds, resolve)("Archiving CP entries for %s", pool_holder()->name()->as_C_string());
 542   for (int cp_index = 1; cp_index < length(); cp_index++) { // cp_index 0 is unused
 543     int cp_tag = tag_at(cp_index).value();
< prev index next >