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
--- 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.