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