@@ -430,26 +430,25 @@ void ConstantPoolCache::remove_resolved_field_entries_if_non_deterministic() {
430430 bool archived = false ;
431431 bool resolved = rfi->is_resolved (Bytecodes::_getfield) ||
432432 rfi->is_resolved (Bytecodes::_putfield);
433- if (resolved && AOTConstantPoolResolver::is_resolution_deterministic (src_cp, cp_index)) {
433+ if (resolved && !CDSConfig::is_dumping_preimage_static_archive ()
434+ && AOTConstantPoolResolver::is_resolution_deterministic (src_cp, cp_index)) {
434435 rfi->mark_and_relocate ();
435436 archived = true ;
436437 } else {
437438 rfi->remove_unshareable_info ();
438439 }
439- if (resolved) {
440- LogStreamHandle (Trace, aot, resolve) log;
441- if (log.is_enabled ()) {
442- ResourceMark rm;
443- int klass_cp_index = cp->uncached_klass_ref_index_at (cp_index);
444- Symbol* klass_name = cp->klass_name_at (klass_cp_index);
445- Symbol* name = cp->uncached_name_ref_at (cp_index);
446- Symbol* signature = cp->uncached_signature_ref_at (cp_index);
447- log.print (" %s field CP entry [%3d]: %s => %s.%s:%s" ,
448- (archived ? " archived" : " reverted" ),
449- cp_index,
450- cp->pool_holder ()->name ()->as_C_string (),
451- klass_name->as_C_string (), name->as_C_string (), signature->as_C_string ());
452- }
440+ LogStreamHandle (Trace, aot, resolve) log;
441+ if (log.is_enabled ()) {
442+ ResourceMark rm;
443+ int klass_cp_index = cp->uncached_klass_ref_index_at (cp_index);
444+ Symbol* klass_name = cp->klass_name_at (klass_cp_index);
445+ Symbol* name = cp->uncached_name_ref_at (cp_index);
446+ Symbol* signature = cp->uncached_signature_ref_at (cp_index);
447+ log.print (" %s field CP entry [%3d]: %s => %s.%s:%s" ,
448+ (archived ? " archived" : " reverted" ),
449+ cp_index,
450+ cp->pool_holder ()->name ()->as_C_string (),
451+ klass_name->as_C_string (), name->as_C_string (), signature->as_C_string ());
453452 }
454453 ArchiveBuilder::alloc_stats ()->record_field_cp_entry (archived, resolved && !archived);
455454 }
@@ -470,32 +469,31 @@ void ConstantPoolCache::remove_resolved_method_entries_if_non_deterministic() {
470469 // Just for safety -- this should not happen, but do not archive if we ever see this.
471470 resolved &= !(rme->is_resolved (Bytecodes::_invokestatic));
472471
473- if (resolved && can_archive_resolved_method (src_cp, rme)) {
472+ if (resolved && !CDSConfig::is_dumping_preimage_static_archive ()
473+ && can_archive_resolved_method (src_cp, rme)) {
474474 rme->mark_and_relocate (src_cp);
475475 archived = true ;
476476 } else {
477477 rme->remove_unshareable_info ();
478478 }
479- if (resolved) {
480- LogStreamHandle (Trace, aot, resolve) log;
481- if (log.is_enabled ()) {
482- ResourceMark rm;
483- int klass_cp_index = cp->uncached_klass_ref_index_at (cp_index);
484- Symbol* klass_name = cp->klass_name_at (klass_cp_index);
485- Symbol* name = cp->uncached_name_ref_at (cp_index);
486- Symbol* signature = cp->uncached_signature_ref_at (cp_index);
487- log.print (" %s%s method CP entry [%3d]: %s %s.%s:%s" ,
488- (archived ? " archived" : " reverted" ),
489- (rme->is_resolved (Bytecodes::_invokeinterface) ? " interface" : " " ),
490- cp_index,
491- cp->pool_holder ()->name ()->as_C_string (),
492- klass_name->as_C_string (), name->as_C_string (), signature->as_C_string ());
493- if (archived) {
494- Klass* resolved_klass = cp->resolved_klass_at (klass_cp_index);
495- log.print (" => %s%s" ,
496- resolved_klass->name ()->as_C_string (),
497- (rme->is_resolved (Bytecodes::_invokestatic) ? " *** static" : " " ));
498- }
479+ LogStreamHandle (Trace, aot, resolve) log;
480+ if (log.is_enabled ()) {
481+ ResourceMark rm;
482+ int klass_cp_index = cp->uncached_klass_ref_index_at (cp_index);
483+ Symbol* klass_name = cp->klass_name_at (klass_cp_index);
484+ Symbol* name = cp->uncached_name_ref_at (cp_index);
485+ Symbol* signature = cp->uncached_signature_ref_at (cp_index);
486+ log.print (" %s%s method CP entry [%3d]: %s %s.%s:%s" ,
487+ (archived ? " archived" : " reverted" ),
488+ (rme->is_resolved (Bytecodes::_invokeinterface) ? " interface" : " " ),
489+ cp_index,
490+ cp->pool_holder ()->name ()->as_C_string (),
491+ klass_name->as_C_string (), name->as_C_string (), signature->as_C_string ());
492+ if (archived) {
493+ Klass* resolved_klass = cp->resolved_klass_at (klass_cp_index);
494+ log.print (" => %s%s" ,
495+ resolved_klass->name ()->as_C_string (),
496+ (rme->is_resolved (Bytecodes::_invokestatic) ? " *** static" : " " ));
499497 }
500498 ArchiveBuilder::alloc_stats ()->record_method_cp_entry (archived, resolved && !archived);
501499 }
@@ -510,29 +508,28 @@ void ConstantPoolCache::remove_resolved_indy_entries_if_non_deterministic() {
510508 int cp_index = rei->constant_pool_index ();
511509 bool archived = false ;
512510 bool resolved = rei->is_resolved ();
513- if (resolved && AOTConstantPoolResolver::is_resolution_deterministic (src_cp, cp_index)) {
511+ if (resolved && !CDSConfig::is_dumping_preimage_static_archive ()
512+ && AOTConstantPoolResolver::is_resolution_deterministic (src_cp, cp_index)) {
514513 rei->mark_and_relocate ();
515514 archived = true ;
516515 } else {
517516 rei->remove_unshareable_info ();
518517 }
519- if (resolved) {
520- LogStreamHandle (Trace, aot, resolve) log;
521- if (log.is_enabled ()) {
522- ResourceMark rm;
523- int bsm = cp->bootstrap_method_ref_index_at (cp_index);
524- int bsm_ref = cp->method_handle_index_at (bsm);
525- Symbol* bsm_name = cp->uncached_name_ref_at (bsm_ref);
526- Symbol* bsm_signature = cp->uncached_signature_ref_at (bsm_ref);
527- Symbol* bsm_klass = cp->klass_name_at (cp->uncached_klass_ref_index_at (bsm_ref));
528- log.print (" %s indy CP entry [%3d]: %s (%d)" ,
529- (archived ? " archived" : " reverted" ),
530- cp_index, cp->pool_holder ()->name ()->as_C_string (), i);
531- log.print (" %s %s.%s:%s" , (archived ? " =>" : " " ), bsm_klass->as_C_string (),
532- bsm_name->as_C_string (), bsm_signature->as_C_string ());
533- }
534- ArchiveBuilder::alloc_stats ()->record_indy_cp_entry (archived, resolved && !archived);
518+ LogStreamHandle (Trace, aot, resolve) log;
519+ if (log.is_enabled ()) {
520+ ResourceMark rm;
521+ int bsm = cp->bootstrap_method_ref_index_at (cp_index);
522+ int bsm_ref = cp->method_handle_index_at (bsm);
523+ Symbol* bsm_name = cp->uncached_name_ref_at (bsm_ref);
524+ Symbol* bsm_signature = cp->uncached_signature_ref_at (bsm_ref);
525+ Symbol* bsm_klass = cp->klass_name_at (cp->uncached_klass_ref_index_at (bsm_ref));
526+ log.print (" %s indy CP entry [%3d]: %s (%d)" ,
527+ (archived ? " archived" : " reverted" ),
528+ cp_index, cp->pool_holder ()->name ()->as_C_string (), i);
529+ log.print (" %s %s.%s:%s" , (archived ? " =>" : " " ), bsm_klass->as_C_string (),
530+ bsm_name->as_C_string (), bsm_signature->as_C_string ());
535531 }
532+ ArchiveBuilder::alloc_stats ()->record_indy_cp_entry (archived, resolved && !archived);
536533 }
537534}
538535
0 commit comments