< prev index next >

src/hotspot/share/cds/archiveUtils.cpp

Print this page

534         ClassListParser::populate_cds_indy_info(pool, pool_index, &cii, CHECK);
535         GrowableArray<const char*>* indy_items = cii.items();
536         for (int i = 0; i < indy_items->length(); i++) {
537           w.stream()->print(" %s", indy_items->at(i));
538         }
539         w.stream()->cr();
540       }
541     }
542   }
543 }
544 
545 bool ArchiveUtils::has_aot_initialized_mirror(InstanceKlass* src_ik) {
546   if (!ArchiveBuilder::current()->has_been_archived(src_ik)) {
547     return false;
548   }
549   return ArchiveBuilder::current()->get_buffered_addr(src_ik)->has_aot_initialized_mirror();
550 }
551 
552 size_t HeapRootSegments::size_in_bytes(size_t seg_idx) {
553   assert(seg_idx < _count, "In range");
554   return objArrayOopDesc::object_size(size_in_elems(seg_idx)) * HeapWordSize;
555 }
556 
557 int HeapRootSegments::size_in_elems(size_t seg_idx) {
558   assert(seg_idx < _count, "In range");
559   if (seg_idx != _count - 1) {
560     return _max_size_in_elems;
561   } else {
562     // Last slice, leftover
563     return _roots_count % _max_size_in_elems;
564   }
565 }
566 
567 size_t HeapRootSegments::segment_offset(size_t seg_idx) {
568   assert(seg_idx < _count, "In range");
569   return _base_offset + seg_idx * _max_size_in_bytes;
570 }
571 
572 ArchiveWorkers::ArchiveWorkers() :
573         _end_semaphore(0),
574         _num_workers(max_workers()),

534         ClassListParser::populate_cds_indy_info(pool, pool_index, &cii, CHECK);
535         GrowableArray<const char*>* indy_items = cii.items();
536         for (int i = 0; i < indy_items->length(); i++) {
537           w.stream()->print(" %s", indy_items->at(i));
538         }
539         w.stream()->cr();
540       }
541     }
542   }
543 }
544 
545 bool ArchiveUtils::has_aot_initialized_mirror(InstanceKlass* src_ik) {
546   if (!ArchiveBuilder::current()->has_been_archived(src_ik)) {
547     return false;
548   }
549   return ArchiveBuilder::current()->get_buffered_addr(src_ik)->has_aot_initialized_mirror();
550 }
551 
552 size_t HeapRootSegments::size_in_bytes(size_t seg_idx) {
553   assert(seg_idx < _count, "In range");
554   return refArrayOopDesc::object_size(size_in_elems(seg_idx)) * HeapWordSize;
555 }
556 
557 int HeapRootSegments::size_in_elems(size_t seg_idx) {
558   assert(seg_idx < _count, "In range");
559   if (seg_idx != _count - 1) {
560     return _max_size_in_elems;
561   } else {
562     // Last slice, leftover
563     return _roots_count % _max_size_in_elems;
564   }
565 }
566 
567 size_t HeapRootSegments::segment_offset(size_t seg_idx) {
568   assert(seg_idx < _count, "In range");
569   return _base_offset + seg_idx * _max_size_in_bytes;
570 }
571 
572 ArchiveWorkers::ArchiveWorkers() :
573         _end_semaphore(0),
574         _num_workers(max_workers()),
< prev index next >