comparison src/share/vm/gc_implementation/g1/sparsePRT.cpp @ 1884:9f4848ebbabd

6992189: G1: inconsistent base used in sparse rem set iterator Summary: The remembered set iterator for sparse tables incorrectly assumes that index 0 corresponds to the bottom of the heap, not address 0 as it is the case. Reviewed-by: ysr, jmasa
author tonyp
date Fri, 15 Oct 2010 17:26:56 -0400
parents a03ae377b2e8
children 72a161e62cc4
comparison
equal deleted inserted replaced
1883:35e4e086d5f5 1884:9f4848ebbabd
321 // Otherwise, none found: 321 // Otherwise, none found:
322 return SparsePRTEntry::NullEntry; 322 return SparsePRTEntry::NullEntry;
323 } 323 }
324 324
325 size_t /* RSHashTable:: */ RSHashTableIter::compute_card_ind(CardIdx_t ci) { 325 size_t /* RSHashTable:: */ RSHashTableIter::compute_card_ind(CardIdx_t ci) {
326 return 326 return (_rsht->entry(_bl_ind)->r_ind() * HeapRegion::CardsPerRegion) + ci;
327 _heap_bot_card_ind
328 + (_rsht->entry(_bl_ind)->r_ind() * HeapRegion::CardsPerRegion)
329 + ci;
330 } 327 }
331 328
332 bool /* RSHashTable:: */ RSHashTableIter::has_next(size_t& card_index) { 329 bool /* RSHashTable:: */ RSHashTableIter::has_next(size_t& card_index) {
333 _card_ind++; 330 _card_ind++;
334 CardIdx_t ci; 331 CardIdx_t ci;