67
67
68
68
#if INCLUDE_CDS_JAVA_HEAP
69
69
70
- bool HeapShared::_closed_archive_heap_region_mapped = false ;
71
- bool HeapShared::_open_archive_heap_region_mapped = false ;
72
- bool HeapShared::_archive_heap_region_fixed = false ;
70
+ bool HeapShared::_closed_regions_mapped = false ;
71
+ bool HeapShared::_open_regions_mapped = false ;
73
72
address HeapShared::_narrow_oop_base;
74
73
int HeapShared::_narrow_oop_shift;
75
74
DumpedInternedStrings *HeapShared::_dumped_interned_strings = NULL ;
@@ -122,10 +121,9 @@ OopHandle HeapShared::_roots;
122
121
// Java heap object archiving support
123
122
//
124
123
// //////////////////////////////////////////////////////////////
125
- void HeapShared::fixup_mapped_heap_regions () {
124
+ void HeapShared::fixup_mapped_regions () {
126
125
FileMapInfo *mapinfo = FileMapInfo::current_info ();
127
126
mapinfo->fixup_mapped_heap_regions ();
128
- set_archive_heap_region_fixed ();
129
127
if (is_mapped ()) {
130
128
_roots = OopHandle (Universe::vm_global (), decode_from_archive (_roots_narrow));
131
129
if (!MetaspaceShared::use_full_module_graph ()) {
@@ -213,7 +211,7 @@ objArrayOop HeapShared::roots() {
213
211
214
212
void HeapShared::set_roots (narrowOop roots) {
215
213
assert (UseSharedSpaces, " runtime only" );
216
- assert (open_archive_heap_region_mapped (), " must be" );
214
+ assert (open_regions_mapped (), " must be" );
217
215
_roots_narrow = roots;
218
216
}
219
217
@@ -238,7 +236,7 @@ oop HeapShared::get_root(int index, bool clear) {
238
236
void HeapShared::clear_root (int index) {
239
237
assert (index >= 0 , " sanity" );
240
238
assert (UseSharedSpaces, " must be" );
241
- if (open_archive_heap_region_mapped ()) {
239
+ if (open_regions_mapped ()) {
242
240
if (log_is_enabled (Debug, cds, heap)) {
243
241
oop old = roots ()->obj_at (index );
244
242
log_debug (cds, heap)(" Clearing root %d: was " PTR_FORMAT, index , p2i (old));
@@ -247,7 +245,7 @@ void HeapShared::clear_root(int index) {
247
245
}
248
246
}
249
247
250
- oop HeapShared::archive_heap_object (oop obj) {
248
+ oop HeapShared::archive_object (oop obj) {
251
249
assert (DumpSharedSpaces, " dump-time only" );
252
250
253
251
oop ao = find_archived_heap_object (obj);
@@ -333,8 +331,8 @@ void HeapShared::run_full_gc_in_vm_thread() {
333
331
}
334
332
}
335
333
336
- void HeapShared::archive_java_heap_objects (GrowableArray<MemRegion>* closed ,
337
- GrowableArray<MemRegion>* open ) {
334
+ void HeapShared::archive_objects (GrowableArray<MemRegion>* closed_regions ,
335
+ GrowableArray<MemRegion>* open_regions ) {
338
336
339
337
G1HeapVerifier::verify_ready_for_archiving ();
340
338
@@ -347,19 +345,18 @@ void HeapShared::archive_java_heap_objects(GrowableArray<MemRegion>* closed,
347
345
log_info (cds)(" Heap range = [" PTR_FORMAT " - " PTR_FORMAT " ]" ,
348
346
p2i (CompressedOops::begin ()), p2i (CompressedOops::end ()));
349
347
log_info (cds)(" Dumping objects to closed archive heap region ..." );
350
- copy_closed_archive_heap_objects (closed );
348
+ copy_closed_objects (closed_regions );
351
349
352
350
log_info (cds)(" Dumping objects to open archive heap region ..." );
353
- copy_open_archive_heap_objects ( open );
351
+ copy_open_objects (open_regions );
354
352
355
353
destroy_archived_object_cache ();
356
354
}
357
355
358
356
G1HeapVerifier::verify_archive_regions ();
359
357
}
360
358
361
- void HeapShared::copy_closed_archive_heap_objects (
362
- GrowableArray<MemRegion> * closed_archive) {
359
+ void HeapShared::copy_closed_objects (GrowableArray<MemRegion>* closed_regions) {
363
360
assert (is_heap_object_archiving_allowed (), " Cannot archive java heap objects" );
364
361
365
362
G1CollectedHeap::heap ()->begin_archive_alloc_range ();
@@ -372,12 +369,11 @@ void HeapShared::copy_closed_archive_heap_objects(
372
369
true /* is_closed_archive */ ,
373
370
false /* is_full_module_graph */ );
374
371
375
- G1CollectedHeap::heap ()->end_archive_alloc_range (closed_archive ,
372
+ G1CollectedHeap::heap ()->end_archive_alloc_range (closed_regions ,
376
373
os::vm_allocation_granularity ());
377
374
}
378
375
379
- void HeapShared::copy_open_archive_heap_objects (
380
- GrowableArray<MemRegion> * open_archive) {
376
+ void HeapShared::copy_open_objects (GrowableArray<MemRegion>* open_regions) {
381
377
assert (is_heap_object_archiving_allowed (), " Cannot archive java heap objects" );
382
378
383
379
G1CollectedHeap::heap ()->begin_archive_alloc_range (true /* open */ );
@@ -400,7 +396,7 @@ void HeapShared::copy_open_archive_heap_objects(
400
396
401
397
copy_roots ();
402
398
403
- G1CollectedHeap::heap ()->end_archive_alloc_range (open_archive ,
399
+ G1CollectedHeap::heap ()->end_archive_alloc_range (open_regions ,
404
400
os::vm_allocation_granularity ());
405
401
}
406
402
@@ -908,7 +904,7 @@ class WalkOopAndArchiveClosure: public BasicOopIterateClosure {
908
904
}
909
905
};
910
906
911
- void HeapShared::check_closed_archive_heap_region_object (InstanceKlass* k) {
907
+ void HeapShared::check_closed_region_object (InstanceKlass* k) {
912
908
// Check fields in the object
913
909
for (JavaFieldStream fs (k); !fs.done (); fs.next ()) {
914
910
if (!fs.access_flags ().is_static ()) {
@@ -990,7 +986,7 @@ oop HeapShared::archive_reachable_objects_from(int level,
990
986
bool record_klasses_only = (archived_obj != NULL );
991
987
if (archived_obj == NULL ) {
992
988
++_num_new_archived_objs;
993
- archived_obj = archive_heap_object (orig_obj);
989
+ archived_obj = archive_object (orig_obj);
994
990
if (archived_obj == NULL ) {
995
991
// Skip archiving the sub-graph referenced from the current entry field.
996
992
ResourceMark rm;
@@ -1031,7 +1027,7 @@ oop HeapShared::archive_reachable_objects_from(int level,
1031
1027
subgraph_info, orig_obj, archived_obj);
1032
1028
orig_obj->oop_iterate (&walker);
1033
1029
if (is_closed_archive && orig_k->is_instance_klass ()) {
1034
- check_closed_archive_heap_region_object (InstanceKlass::cast (orig_k));
1030
+ check_closed_region_object (InstanceKlass::cast (orig_k));
1035
1031
}
1036
1032
return archived_obj;
1037
1033
}
@@ -1433,8 +1429,10 @@ class PatchEmbeddedPointers: public BitMapClosure {
1433
1429
}
1434
1430
};
1435
1431
1436
- void HeapShared::patch_archived_heap_embedded_pointers (MemRegion region, address oopmap,
1437
- size_t oopmap_size_in_bits) {
1432
+ // Patch all the non-null pointers that are embedded in the archived heap objects
1433
+ // in this region
1434
+ void HeapShared::patch_embedded_pointers (MemRegion region, address oopmap,
1435
+ size_t oopmap_size_in_bits) {
1438
1436
BitMapView bm ((BitMap::bm_word_t *)oopmap, oopmap_size_in_bits);
1439
1437
1440
1438
#ifndef PRODUCT
0 commit comments