Mercurial > hg > graal-jvmci-8
diff src/share/vm/gc_implementation/g1/g1CollectedHeap.cpp @ 3983:811ec3d0833b
7097053: G1: assert(da ? referent->is_oop() : referent->is_oop_or_null()) failed: referenceProcessor.cpp:1054
Summary: During remembered set scanning, the reference processor could discover a reference object whose referent was in the process of being copied and so may not be completely initialized. Do not perform reference discovery during remembered set scanning.
Reviewed-by: tonyp, ysr
author | johnc |
---|---|
date | Mon, 03 Oct 2011 12:49:53 -0700 |
parents | 273b46400613 |
children | 65a8ff39a6da |
line wrap: on
line diff
--- a/src/share/vm/gc_implementation/g1/g1CollectedHeap.cpp Wed Sep 28 10:36:31 2011 -0700 +++ b/src/share/vm/gc_implementation/g1/g1CollectedHeap.cpp Mon Oct 03 12:49:53 2011 -0700 @@ -4618,15 +4618,7 @@ scan_perm_cl = &scan_mark_perm_cl; } - // The following closure is used to scan RSets looking for reference - // fields that point into the collection set. The actual field iteration - // is performed by a FilterIntoCSClosure, whose do_oop method calls the - // do_oop method of the following closure. - // Therefore we want to record the reference processor in the - // FilterIntoCSClosure. To do so we record the STW reference - // processor into the following closure and pass it to the - // FilterIntoCSClosure in HeapRegionDCTOC::walk_mem_region_with_cl. - G1ParPushHeapRSClosure push_heap_rs_cl(_g1h, &pss, rp); + G1ParPushHeapRSClosure push_heap_rs_cl(_g1h, &pss); pss.start_strong_roots(); _g1h->g1_process_strong_roots(/* not collecting perm */ false,