Index: src/heap/concurrent-marking.cc |
diff --git a/src/heap/concurrent-marking.cc b/src/heap/concurrent-marking.cc |
index 2e91ae368f958edec45f6577b2fdfa2fc5d0c1c8..85cee07943148993287d1535fc4b9ec113efa53a 100644 |
--- a/src/heap/concurrent-marking.cc |
+++ b/src/heap/concurrent-marking.cc |
@@ -37,8 +37,10 @@ class ConcurrentMarkingVisitor final |
void VisitPointers(HeapObject* host, Object** start, Object** end) override { |
for (Object** p = start; p < end; p++) { |
- if (!(*p)->IsHeapObject()) continue; |
- MarkObject(HeapObject::cast(*p)); |
+ Object* object = reinterpret_cast<Object*>( |
+ base::NoBarrier_Load(reinterpret_cast<const base::AtomicWord*>(p))); |
+ if (!object->IsHeapObject()) continue; |
+ MarkObject(HeapObject::cast(object)); |
} |
} |