From fc22d3606c1db6f75644725729c9425fe640a1a3 Mon Sep 17 00:00:00 2001 From: Bo Liu Date: Tue, 4 Nov 2014 08:53:58 -0800 Subject: Cherry-pick: Revert r24737 "Read object pointer atomically while updating slots" Cherry-pick of https://codereview.chromium.org/683113003/ BUG: 18208160 Change-Id: I77a6b5729b26f47311bfd1fa12c199e9ddf087f0 --- src/heap/mark-compact.cc | 8 ++------ 1 file changed, 2 insertions(+), 6 deletions(-) diff --git a/src/heap/mark-compact.cc b/src/heap/mark-compact.cc index f7899c960..5b19fca92 100644 --- a/src/heap/mark-compact.cc +++ b/src/heap/mark-compact.cc @@ -2927,8 +2927,7 @@ class PointersUpdatingVisitor : public ObjectVisitor { } static inline void UpdateSlot(Heap* heap, Object** slot) { - Object* obj = reinterpret_cast( - base::NoBarrier_Load(reinterpret_cast(slot))); + Object* obj = *slot; if (!obj->IsHeapObject()) return; @@ -2939,10 +2938,7 @@ class PointersUpdatingVisitor : public ObjectVisitor { DCHECK(heap->InFromSpace(heap_obj) || MarkCompactCollector::IsOnEvacuationCandidate(heap_obj)); HeapObject* target = map_word.ToForwardingAddress(); - base::NoBarrier_CompareAndSwap( - reinterpret_cast(slot), - reinterpret_cast(obj), - reinterpret_cast(target)); + *slot = target; DCHECK(!heap->InFromSpace(target) && !MarkCompactCollector::IsOnEvacuationCandidate(target)); } -- cgit v1.2.3