< prev index next >

src/hotspot/share/oops/constantPool.cpp

Print this page

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



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

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