< prev index next >

src/hotspot/share/oops/constantPool.cpp

Print this page

 487 }
 488 
 489 static const char* get_type(Klass* k) {
 490   const char* type;
 491   Klass* src_k;
 492   if (ArchiveBuilder::is_active() && ArchiveBuilder::current()->is_in_buffer_space(k)) {
 493     src_k = ArchiveBuilder::current()->get_source_addr(k);
 494   } else {
 495     src_k = k;
 496   }
 497 
 498   if (src_k->is_objArray_klass()) {
 499     src_k = ObjArrayKlass::cast(src_k)->bottom_klass();
 500     assert(!src_k->is_objArray_klass(), "sanity");
 501   }
 502 
 503   if (src_k->is_typeArray_klass()) {
 504     type = "prim";
 505   } else {
 506     InstanceKlass* src_ik = InstanceKlass::cast(src_k);



 507     oop loader = src_ik->class_loader();
 508     if (loader == nullptr) {
 509       type = "boot";
 510     } else if (loader == SystemDictionary::java_platform_loader()) {
 511       type = "plat";
 512     } else if (loader == SystemDictionary::java_system_loader()) {
 513       type = "app";
 514     } else {
 515       type = "unreg";
 516     }
 517   }
 518 
 519   return type;
 520 }
 521 
 522 void ConstantPool::remove_unshareable_entries() {
 523   ResourceMark rm;
 524   log_info(cds, resolve)("Archiving CP entries for %s", pool_holder()->name()->as_C_string());
 525   for (int cp_index = 1; cp_index < length(); cp_index++) { // cp_index 0 is unused
 526     int cp_tag = tag_at(cp_index).value();

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