1.1 --- a/src/share/vm/gc_implementation/g1/g1RegionToSpaceMapper.cpp Fri Oct 10 15:45:45 2014 +0200 1.2 +++ b/src/share/vm/gc_implementation/g1/g1RegionToSpaceMapper.cpp Fri Oct 10 15:51:58 2014 +0200 1.3 @@ -69,7 +69,7 @@ 1.4 virtual void commit_regions(uintptr_t start_idx, size_t num_regions) { 1.5 _storage.commit(start_idx * _pages_per_region, num_regions * _pages_per_region); 1.6 _commit_map.set_range(start_idx, start_idx + num_regions); 1.7 - fire_on_commit(start_idx, num_regions); 1.8 + fire_on_commit(start_idx, num_regions, true); 1.9 } 1.10 1.11 virtual void uncommit_regions(uintptr_t start_idx, size_t num_regions) { 1.12 @@ -115,12 +115,14 @@ 1.13 assert(!_commit_map.at(i), err_msg("Trying to commit storage at region "INTPTR_FORMAT" that is already committed", i)); 1.14 uintptr_t idx = region_idx_to_page_idx(i); 1.15 uint old_refcount = _refcounts.get_by_index(idx); 1.16 + bool zero_filled = false; 1.17 if (old_refcount == 0) { 1.18 _storage.commit(idx, 1); 1.19 + zero_filled = true; 1.20 } 1.21 _refcounts.set_by_index(idx, old_refcount + 1); 1.22 _commit_map.set_bit(i); 1.23 - fire_on_commit(i, 1); 1.24 + fire_on_commit(i, 1, zero_filled); 1.25 } 1.26 } 1.27 1.28 @@ -139,9 +141,9 @@ 1.29 } 1.30 }; 1.31 1.32 -void G1RegionToSpaceMapper::fire_on_commit(uint start_idx, size_t num_regions) { 1.33 +void G1RegionToSpaceMapper::fire_on_commit(uint start_idx, size_t num_regions, bool zero_filled) { 1.34 if (_listener != NULL) { 1.35 - _listener->on_commit(start_idx, num_regions); 1.36 + _listener->on_commit(start_idx, num_regions, zero_filled); 1.37 } 1.38 } 1.39