373 ClassListParser::populate_cds_indy_info(pool, pool_index, &cii, CHECK);
374 GrowableArray<const char*>* indy_items = cii.items();
375 for (int i = 0; i < indy_items->length(); i++) {
376 w.stream()->print(" %s", indy_items->at(i));
377 }
378 w.stream()->cr();
379 }
380 }
381 }
382 }
383
384 bool ArchiveUtils::has_aot_initialized_mirror(InstanceKlass* src_ik) {
385 if (!ArchiveBuilder::current()->has_been_archived(src_ik)) {
386 return false;
387 }
388 return ArchiveBuilder::current()->get_buffered_addr(src_ik)->has_aot_initialized_mirror();
389 }
390
391 size_t HeapRootSegments::size_in_bytes(size_t seg_idx) {
392 assert(seg_idx < _count, "In range");
393 return objArrayOopDesc::object_size(size_in_elems(seg_idx)) * HeapWordSize;
394 }
395
396 int HeapRootSegments::size_in_elems(size_t seg_idx) {
397 assert(seg_idx < _count, "In range");
398 if (seg_idx != _count - 1) {
399 return _max_size_in_elems;
400 } else {
401 // Last slice, leftover
402 return _roots_count % _max_size_in_elems;
403 }
404 }
405
406 size_t HeapRootSegments::segment_offset(size_t seg_idx) {
407 assert(seg_idx < _count, "In range");
408 return _base_offset + seg_idx * _max_size_in_bytes;
409 }
410
411 ArchiveWorkers::ArchiveWorkers() :
412 _end_semaphore(0),
413 _num_workers(max_workers()),
|
373 ClassListParser::populate_cds_indy_info(pool, pool_index, &cii, CHECK);
374 GrowableArray<const char*>* indy_items = cii.items();
375 for (int i = 0; i < indy_items->length(); i++) {
376 w.stream()->print(" %s", indy_items->at(i));
377 }
378 w.stream()->cr();
379 }
380 }
381 }
382 }
383
384 bool ArchiveUtils::has_aot_initialized_mirror(InstanceKlass* src_ik) {
385 if (!ArchiveBuilder::current()->has_been_archived(src_ik)) {
386 return false;
387 }
388 return ArchiveBuilder::current()->get_buffered_addr(src_ik)->has_aot_initialized_mirror();
389 }
390
391 size_t HeapRootSegments::size_in_bytes(size_t seg_idx) {
392 assert(seg_idx < _count, "In range");
393 return refArrayOopDesc::object_size(size_in_elems(seg_idx)) * HeapWordSize;
394 }
395
396 int HeapRootSegments::size_in_elems(size_t seg_idx) {
397 assert(seg_idx < _count, "In range");
398 if (seg_idx != _count - 1) {
399 return _max_size_in_elems;
400 } else {
401 // Last slice, leftover
402 return _roots_count % _max_size_in_elems;
403 }
404 }
405
406 size_t HeapRootSegments::segment_offset(size_t seg_idx) {
407 assert(seg_idx < _count, "In range");
408 return _base_offset + seg_idx * _max_size_in_bytes;
409 }
410
411 ArchiveWorkers::ArchiveWorkers() :
412 _end_semaphore(0),
413 _num_workers(max_workers()),
|