< prev index next >

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

Print this page

        

*** 103,113 **** // and adding a bit to the new table is never incorrect. // If the table used to belong to a continues humongous region and is // now reused for the corresponding start humongous region, we need to // make sure that we detect this. Thus, we call is_in_reserved_raw() // instead of just is_in_reserved() here. ! if (loc_hr->is_in_reserved_raw(from)) { size_t hw_offset = pointer_delta((HeapWord*)from, loc_hr->bottom()); CardIdx_t from_card = (CardIdx_t) hw_offset >> (CardTableModRefBS::card_shift - LogHeapWordSize); assert(0 <= from_card && (size_t)from_card < HeapRegion::CardsPerRegion, --- 103,113 ---- // and adding a bit to the new table is never incorrect. // If the table used to belong to a continues humongous region and is // now reused for the corresponding start humongous region, we need to // make sure that we detect this. Thus, we call is_in_reserved_raw() // instead of just is_in_reserved() here. ! if (loc_hr->is_in_reserved(from)) { size_t hw_offset = pointer_delta((HeapWord*)from, loc_hr->bottom()); CardIdx_t from_card = (CardIdx_t) hw_offset >> (CardTableModRefBS::card_shift - LogHeapWordSize); assert(0 <= from_card && (size_t)from_card < HeapRegion::CardsPerRegion,
*** 431,441 **** assert(contains_reference(from), "We just added it!"); return; } // Note that this may be a continued H region. ! HeapRegion* from_hr = _g1h->heap_region_containing_raw(from); RegionIdx_t from_hrm_ind = (RegionIdx_t) from_hr->hrm_index(); // If the region is already coarsened, return. if (_coarse_map.at(from_hrm_ind)) { if (G1TraceHeapRegionRememberedSet) { --- 431,441 ---- assert(contains_reference(from), "We just added it!"); return; } // Note that this may be a continued H region. ! HeapRegion* from_hr = _g1h->heap_region_containing(from); RegionIdx_t from_hrm_ind = (RegionIdx_t) from_hr->hrm_index(); // If the region is already coarsened, return. if (_coarse_map.at(from_hrm_ind)) { if (G1TraceHeapRegionRememberedSet) {
*** 784,794 **** MutexLockerEx x((Mutex*)_m, Mutex::_no_safepoint_check_flag); return contains_reference_locked(from); } bool OtherRegionsTable::contains_reference_locked(OopOrNarrowOopStar from) const { ! HeapRegion* hr = _g1h->heap_region_containing_raw(from); RegionIdx_t hr_ind = (RegionIdx_t) hr->hrm_index(); // Is this region in the coarse map? if (_coarse_map.at(hr_ind)) return true; PerRegionTable* prt = find_region_table(hr_ind & _mod_max_fine_entries_mask, --- 784,794 ---- MutexLockerEx x((Mutex*)_m, Mutex::_no_safepoint_check_flag); return contains_reference_locked(from); } bool OtherRegionsTable::contains_reference_locked(OopOrNarrowOopStar from) const { ! HeapRegion* hr = _g1h->heap_region_containing(from); RegionIdx_t hr_ind = (RegionIdx_t) hr->hrm_index(); // Is this region in the coarse map? if (_coarse_map.at(hr_ind)) return true; PerRegionTable* prt = find_region_table(hr_ind & _mod_max_fine_entries_mask,
< prev index next >