< prev index next >

src/hotspot/share/oops/constantPool.cpp

Print this page

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



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

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