--- a/hotspot/src/share/vm/gc_implementation/g1/g1CollectedHeap.cpp Fri Sep 19 09:23:55 2014 +0200
+++ b/hotspot/src/share/vm/gc_implementation/g1/g1CollectedHeap.cpp Thu Sep 18 12:45:45 2014 +0200
@@ -1960,15 +1960,10 @@
ReservedSpace heap_rs = Universe::reserve_heap(max_byte_size,
heap_alignment);
- // It is important to do this in a way such that concurrent readers can't
- // temporarily think something is in the heap. (I've actually seen this
- // happen in asserts: DLD.)
- _reserved.set_word_size(0);
- _reserved.set_start((HeapWord*)heap_rs.base());
- _reserved.set_end((HeapWord*)(heap_rs.base() + heap_rs.size()));
+ initialize_reserved_region((HeapWord*)heap_rs.base(), (HeapWord*)(heap_rs.base() + heap_rs.size()));
// Create the gen rem set (and barrier set) for the entire reserved region.
- _rem_set = collector_policy()->create_rem_set(_reserved, 2);
+ _rem_set = collector_policy()->create_rem_set(reserved_region(), 2);
set_barrier_set(rem_set()->bs());
if (!barrier_set()->is_a(BarrierSet::G1SATBCTLogging)) {
vm_exit_during_initialization("G1 requires a G1SATBLoggingCardTableModRefBS");
@@ -2052,7 +2047,7 @@
FreeRegionList::set_unrealistically_long_length(max_regions() + 1);
- _bot_shared = new G1BlockOffsetSharedArray(_reserved, bot_storage);
+ _bot_shared = new G1BlockOffsetSharedArray(reserved_region(), bot_storage);
_g1h = this;