// Starting at "start_addr" (inclusive) return a memory region // corresponding to the first maximal contiguous marked ("1") region // strictly less than end_addr. inline MemRegion CMSBitMap::getAndClearMarkedRegion(HeapWord* start_addr, HeapWord* end_addr) { HeapWord *start, *end; assert_locked(); start = getNextMarkedWordAddress (start_addr, end_addr); end = getNextUnmarkedWordAddress(start, end_addr); assert(start <= end, "Consistency check"); MemRegion mr(start, end); if (!mr.is_empty()) { clear_range(mr); } return mr; }
inline void clear() { clear_range(0, size()); }