< prev index next >
src/hotspot/share/gc/shared/markBitMap.cpp
Print this page
rev 50076 : Fold Partial GC into Traversal GC
@@ -77,5 +77,14 @@
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 >