< 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 >