src/share/vm/gc_implementation/g1/g1RegionToSpaceMapper.cpp

changeset 7257
e7d0505c8a30
parent 7053
7b2fc3129653
child 7509
ae52ee069062
     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  

mercurial