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

changeset 2643
1216415d8e35
parent 2497
3582bf76420e
child 2969
6747fd0512e0
     1.1 --- a/src/share/vm/gc_implementation/g1/g1MarkSweep.cpp	Thu Mar 03 21:02:56 2011 -0800
     1.2 +++ b/src/share/vm/gc_implementation/g1/g1MarkSweep.cpp	Fri Mar 04 17:13:19 2011 -0500
     1.3 @@ -185,22 +185,22 @@
     1.4    G1CollectedHeap* _g1h;
     1.5    ModRefBarrierSet* _mrbs;
     1.6    CompactPoint _cp;
     1.7 -  size_t _pre_used;
     1.8 -  FreeRegionList _free_list;
     1.9    HumongousRegionSet _humongous_proxy_set;
    1.10  
    1.11    void free_humongous_region(HeapRegion* hr) {
    1.12      HeapWord* end = hr->end();
    1.13 +    size_t dummy_pre_used;
    1.14 +    FreeRegionList dummy_free_list("Dummy Free List for G1MarkSweep");
    1.15 +
    1.16      assert(hr->startsHumongous(),
    1.17             "Only the start of a humongous region should be freed.");
    1.18 -    _g1h->free_humongous_region(hr, &_pre_used, &_free_list,
    1.19 +    _g1h->free_humongous_region(hr, &dummy_pre_used, &dummy_free_list,
    1.20                                  &_humongous_proxy_set, false /* par */);
    1.21 -    // Do we also need to do this for the continues humongous regions
    1.22 -    // we just collapsed?
    1.23      hr->prepare_for_compaction(&_cp);
    1.24      // Also clear the part of the card table that will be unused after
    1.25      // compaction.
    1.26      _mrbs->clear(MemRegion(hr->compaction_top(), end));
    1.27 +    dummy_free_list.remove_all();
    1.28    }
    1.29  
    1.30  public:
    1.31 @@ -208,8 +208,6 @@
    1.32    : _g1h(G1CollectedHeap::heap()),
    1.33      _mrbs(G1CollectedHeap::heap()->mr_bs()),
    1.34      _cp(NULL, cs, cs->initialize_threshold()),
    1.35 -    _pre_used(0),
    1.36 -    _free_list("Local Free List for G1MarkSweep"),
    1.37      _humongous_proxy_set("G1MarkSweep Humongous Proxy Set") { }
    1.38  
    1.39    void update_sets() {
    1.40 @@ -219,7 +217,6 @@
    1.41                                              NULL, /* free_list */
    1.42                                              &_humongous_proxy_set,
    1.43                                              false /* par */);
    1.44 -    _free_list.remove_all();
    1.45    }
    1.46  
    1.47    bool doHeapRegion(HeapRegion* hr) {

mercurial