< prev index next > src/hotspot/share/gc/shared/markBitMap.cpp
Print this page
} else {
_bm.clear_range(beg, end);
}
}
+ size_t MarkBitMap::count_marked(MemRegion mr) {
+ MemRegion intersection = mr.intersection(_covered);
+ assert(!intersection.is_empty(),
+ "Given range from " PTR_FORMAT " to " PTR_FORMAT " is completely outside the heap",
+ p2i(mr.start()), p2i(mr.end()));
+ // convert address range into offset range
+ size_t beg = addr_to_offset(intersection.start());
+ size_t end = addr_to_offset(intersection.end());
+ return _bm.count_one_bits(beg, end);
+ }
+
#ifdef ASSERT
void MarkBitMap::check_mark(HeapWord* addr) {
assert(Universe::heap()->is_in(addr),
"Trying to access bitmap " PTR_FORMAT " for address " PTR_FORMAT " not in the heap.",
p2i(this), p2i(addr));
< prev index next >