< prev index next >

src/hotspot/share/gc/shared/markBitMap.cpp

Print this page
rev 50076 : Fold Partial GC into Traversal GC

*** 77,81 **** --- 77,90 ---- assert(!mr.is_empty(), "unexpected empty region"); // convert address range into offset range _bm.clear_large_range(heapWordToOffset(mr.start()), heapWordToOffset(mr.end())); } + + void MarkBitMap::copy_from(MarkBitMap* other, MemRegion mr) { + guarantee(startWord() == other->startWord(), "bitmaps must cover same region"); + guarantee(endWord() == other->endWord(), "bitmaps must cover same region"); + mr.intersection(MemRegion(_bmStartWord, _bmWordSize)); + size_t start_offset = heapWordToOffset(mr.start()); + size_t end_offset = heapWordToOffset(mr.end()); + _bm.copy_from(other->_bm, start_offset, end_offset); + }
< prev index next >