< prev index next >

src/share/vm/gc/g1/heapRegionRemSet.cpp

Print this page
rev 11047 : [mq]: 8155233-jon-review

*** 517,528 **** --- 517,530 ---- void OtherRegionsTable::scrub(G1CardLiveData* live_data) { // First eliminated garbage regions from the coarse map. log_develop_trace(gc, remset, scrub)("Scrubbing region %u:", _hr->hrm_index()); log_develop_trace(gc, remset, scrub)(" Coarse map: before = " SIZE_FORMAT "...", _n_coarse_entries); + if (_n_coarse_entries > 0) { live_data->remove_nonlive_regions(&_coarse_map); _n_coarse_entries = _coarse_map.count_one_bits(); + } log_develop_trace(gc, remset, scrub)(" after = " SIZE_FORMAT ".", _n_coarse_entries); // Now do the fine-grained maps. for (size_t i = 0; i < _max_fine_entries; i++) { PerRegionTable* cur = _fine_grain_regions[i];
*** 644,654 **** --- 646,658 ---- guarantee(_first_all_fine_prts == NULL && _last_all_fine_prts == NULL, "just checking"); } _first_all_fine_prts = _last_all_fine_prts = NULL; _sparse_table.clear(); + if (_n_coarse_entries > 0) { _coarse_map.clear(); + } _n_fine_entries = 0; _n_coarse_entries = 0; clear_fcc(); }
< prev index next >