444 |
444 |
445 inline void ModUnionClosure::do_MemRegion(MemRegion mr) { |
445 inline void ModUnionClosure::do_MemRegion(MemRegion mr) { |
446 // Align the end of mr so it's at a card boundary. |
446 // Align the end of mr so it's at a card boundary. |
447 // This is superfluous except at the end of the space; |
447 // This is superfluous except at the end of the space; |
448 // we should do better than this XXX |
448 // we should do better than this XXX |
449 MemRegion mr2(mr.start(), (HeapWord*)round_to((intptr_t)mr.end(), |
449 MemRegion mr2(mr.start(), align_up(mr.end(), |
450 CardTableModRefBS::card_size /* bytes */)); |
450 CardTableModRefBS::card_size /* bytes */)); |
451 _t->mark_range(mr2); |
451 _t->mark_range(mr2); |
452 } |
452 } |
453 |
453 |
454 inline void ModUnionClosurePar::do_MemRegion(MemRegion mr) { |
454 inline void ModUnionClosurePar::do_MemRegion(MemRegion mr) { |
455 // Align the end of mr so it's at a card boundary. |
455 // Align the end of mr so it's at a card boundary. |
456 // This is superfluous except at the end of the space; |
456 // This is superfluous except at the end of the space; |
457 // we should do better than this XXX |
457 // we should do better than this XXX |
458 MemRegion mr2(mr.start(), (HeapWord*)round_to((intptr_t)mr.end(), |
458 MemRegion mr2(mr.start(), align_up(mr.end(), |
459 CardTableModRefBS::card_size /* bytes */)); |
459 CardTableModRefBS::card_size /* bytes */)); |
460 _t->par_mark_range(mr2); |
460 _t->par_mark_range(mr2); |
461 } |
461 } |
462 |
462 |
463 #endif // SHARE_VM_GC_CMS_CONCURRENTMARKSWEEPGENERATION_INLINE_HPP |
463 #endif // SHARE_VM_GC_CMS_CONCURRENTMARKSWEEPGENERATION_INLINE_HPP |