< prev index next >

src/hotspot/share/oops/constantPool.cpp

Print this page

 465 }
 466 
 467 static const char* get_type(Klass* k) {
 468   const char* type;
 469   Klass* src_k;
 470   if (ArchiveBuilder::is_active() && ArchiveBuilder::current()->is_in_buffer_space(k)) {
 471     src_k = ArchiveBuilder::current()->get_source_addr(k);
 472   } else {
 473     src_k = k;
 474   }
 475 
 476   if (src_k->is_objArray_klass()) {
 477     src_k = ObjArrayKlass::cast(src_k)->bottom_klass();
 478     assert(!src_k->is_objArray_klass(), "sanity");
 479   }
 480 
 481   if (src_k->is_typeArray_klass()) {
 482     type = "prim";
 483   } else {
 484     InstanceKlass* src_ik = InstanceKlass::cast(src_k);



 485     if (src_ik->defined_by_boot_loader()) {
 486       return "boot";
 487     } else if (src_ik->defined_by_platform_loader()) {
 488       return "plat";
 489     } else if (src_ik->defined_by_app_loader()) {
 490       return "app";
 491     } else {
 492       return "unreg";
 493     }
 494   }
 495 
 496   return type;
 497 }
 498 
 499 void ConstantPool::remove_unshareable_entries() {
 500   ResourceMark rm;
 501   log_info(aot, resolve)("Archiving CP entries for %s", pool_holder()->name()->as_C_string());
 502   for (int cp_index = 1; cp_index < length(); cp_index++) { // cp_index 0 is unused
 503     int cp_tag = tag_at(cp_index).value();
 504     switch (cp_tag) {

 465 }
 466 
 467 static const char* get_type(Klass* k) {
 468   const char* type;
 469   Klass* src_k;
 470   if (ArchiveBuilder::is_active() && ArchiveBuilder::current()->is_in_buffer_space(k)) {
 471     src_k = ArchiveBuilder::current()->get_source_addr(k);
 472   } else {
 473     src_k = k;
 474   }
 475 
 476   if (src_k->is_objArray_klass()) {
 477     src_k = ObjArrayKlass::cast(src_k)->bottom_klass();
 478     assert(!src_k->is_objArray_klass(), "sanity");
 479   }
 480 
 481   if (src_k->is_typeArray_klass()) {
 482     type = "prim";
 483   } else {
 484     InstanceKlass* src_ik = InstanceKlass::cast(src_k);
 485     if (CDSConfig::is_dumping_final_static_archive() && src_ik->class_loader_data() == nullptr) {
 486       return "unreg";
 487     }
 488     if (src_ik->defined_by_boot_loader()) {
 489       return "boot";
 490     } else if (src_ik->defined_by_platform_loader()) {
 491       return "plat";
 492     } else if (src_ik->defined_by_app_loader()) {
 493       return "app";
 494     } else {
 495       return "unreg";
 496     }
 497   }
 498 
 499   return type;
 500 }
 501 
 502 void ConstantPool::remove_unshareable_entries() {
 503   ResourceMark rm;
 504   log_info(aot, resolve)("Archiving CP entries for %s", pool_holder()->name()->as_C_string());
 505   for (int cp_index = 1; cp_index < length(); cp_index++) { // cp_index 0 is unused
 506     int cp_tag = tag_at(cp_index).value();
 507     switch (cp_tag) {
< prev index next >