21 lines
1.0 KiB
Diff
21 lines
1.0 KiB
Diff
|
|
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 <class T> 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.
|