diff --git a/hotspot/src/share/vm/gc_implementation/parNew/parOopClosures.inline.hpp b/hotspot/src/share/vm/gc_implementation/parNew/parOopClosures.inline.hpp index 2a3e32071..887e47216 100644 --- a/hotspot/src/share/vm/gc_implementation/parNew/parOopClosures.inline.hpp +++ b/hotspot/src/share/vm/gc_implementation/parNew/parOopClosures.inline.hpp @@ -38,6 +38,7 @@ template inline void ParScanWeakRefClosure::do_oop_work(T* p) { // we need to ensure that it is copied (see comment in // ParScanClosure::do_oop_work). Klass* objK = obj->klass(); + OrderAccess::loadload(); markOop m = obj->mark(); oop new_obj; if (m->is_marked()) { // Contains forwarding pointer. @@ -101,6 +102,7 @@ inline void ParScanClosure::do_oop_work(T* p, // overwritten with an overflow next pointer after the object is // forwarded. Klass* objK = obj->klass(); + OrderAccess::loadload(); markOop m = obj->mark(); oop new_obj; if (m->is_marked()) { // Contains forwarding pointer.