hotspot/src/share/vm/gc_implementation/g1/g1CollectedHeap.cpp
void G1CollectedHeap::collection_set_iterate_from(HeapRegion* r,
HeapRegionClosure *cl) {
{- -------------------------------------------
(1)
---------------------------------------- -}
if (r == NULL) {
// The CSet is empty so there's nothing to do.
return;
}
{- -------------------------------------------
(1) (assert)
---------------------------------------- -}
assert(r->in_collection_set(),
"Start region must be a member of the collection set.");
{- -------------------------------------------
(1)
---------------------------------------- -}
HeapRegion* cur = r;
while (cur != NULL) {
HeapRegion* next = cur->next_in_collection_set();
if (cl->doHeapRegion(cur) && false) {
cl->incomplete();
return;
}
cur = next;
}
cur = g1_policy()->collection_set();
while (cur != r) {
HeapRegion* next = cur->next_in_collection_set();
if (cl->doHeapRegion(cur) && false) {
cl->incomplete();
return;
}
cur = next;
}
}
This document is available under the GNU GENERAL PUBLIC LICENSE Version 2.