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

changeset 1231
29e7d79232b9
parent 1229
315a5d70b295
child 1280
df6caf649ff7
     1.1 --- a/src/share/vm/gc_implementation/g1/g1RemSet.cpp	Mon May 18 11:52:46 2009 -0700
     1.2 +++ b/src/share/vm/gc_implementation/g1/g1RemSet.cpp	Tue May 19 04:05:31 2009 -0700
     1.3 @@ -219,6 +219,7 @@
     1.4      HeapRegionRemSet* hrrs = r->rem_set();
     1.5      if (hrrs->iter_is_complete()) return false; // All done.
     1.6      if (!_try_claimed && !hrrs->claim_iter()) return false;
     1.7 +    _g1h->push_dirty_cards_region(r);
     1.8      // If we didn't return above, then
     1.9      //   _try_claimed || r->claim_iter()
    1.10      // is true: either we're supposed to work on claimed-but-not-complete
    1.11 @@ -242,6 +243,10 @@
    1.12        assert(card_region != NULL, "Yielding cards not in the heap?");
    1.13        _cards++;
    1.14  
    1.15 +      if (!card_region->is_on_dirty_cards_region_list()) {
    1.16 +        _g1h->push_dirty_cards_region(card_region);
    1.17 +      }
    1.18 +
    1.19         // If the card is dirty, then we will scan it during updateRS.
    1.20        if (!card_region->in_collection_set() && !_ct_bs->is_card_dirty(card_index)) {
    1.21            if (!_ct_bs->is_card_claimed(card_index) && _ct_bs->claim_card(card_index)) {

mercurial