< prev index next >
src/share/vm/gc/shenandoah/shenandoahHeap.cpp
Print this page
rev 13132 : Correctly iterate references in humongous regions.
*** 2606,2617 ****
void work(uint worker_id) {
ShenandoahUpdateHeapRefsClosure cl;
ShenandoahHeapRegion* r = _regions->claim_next();
while (r != NULL && ! _heap->cancelled_concgc()) {
! if (! r->is_humongous_continuation() &&
! ! _heap->in_collection_set(r) &&
! r->is_empty()) {
HeapWord* limit = r->concurrent_iteration_safe_limit();
_heap->marked_object_oop_iterate(r, &cl, limit);
} else if (_heap->in_collection_set(r)) {
HeapWord* bottom = r->bottom();
--- 2606,2616 ----
void work(uint worker_id) {
ShenandoahUpdateHeapRefsClosure cl;
ShenandoahHeapRegion* r = _regions->claim_next();
while (r != NULL && ! _heap->cancelled_concgc()) {
! if (! _heap->in_collection_set(r) &&
! r->is_empty()) {
HeapWord* limit = r->concurrent_iteration_safe_limit();
_heap->marked_object_oop_iterate(r, &cl, limit);
} else if (_heap->in_collection_set(r)) {
HeapWord* bottom = r->bottom();
< prev index next >