8203848: Missing remembered set entry in j.l.ref.references after JDK-8203028
authortschatzl
Mon, 02 Jul 2018 09:38:20 +0200
changeset 50920 d9160a3c97c1
parent 50919 803cfa425026
child 50921 7f462e8383f6
8203848: Missing remembered set entry in j.l.ref.references after JDK-8203028 Summary: Collect remembered sets for discovered fields while adding them to the list of discovered references. Reviewed-by: kbarrett, eosterlund
src/hotspot/share/gc/shared/referenceProcessor.cpp
--- a/src/hotspot/share/gc/shared/referenceProcessor.cpp	Mon Jul 02 09:28:23 2018 +0200
+++ b/src/hotspot/share/gc/shared/referenceProcessor.cpp	Mon Jul 02 09:38:20 2018 +0200
@@ -1033,7 +1033,7 @@
   // The last ref must have its discovered field pointing to itself.
   oop next_discovered = (current_head != NULL) ? current_head : obj;
 
-  oop retest = RawAccess<>::oop_atomic_cmpxchg(next_discovered, discovered_addr, oop(NULL));
+  oop retest = HeapAccess<AS_NO_KEEPALIVE>::oop_atomic_cmpxchg(next_discovered, discovered_addr, oop(NULL));
 
   if (retest == NULL) {
     // This thread just won the right to enqueue the object.