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,