Revert r24737 "Read object pointer atomically while updating slots"
authorulan@chromium.org <ulan@chromium.org>
Tue, 28 Oct 2014 16:43:34 +0000 (16:43 +0000)
committerulan@chromium.org <ulan@chromium.org>
Tue, 28 Oct 2014 16:44:18 +0000 (16:44 +0000)
That broke webkit_unit_tests on ARM64.

BUG=chromium:427746
LOG=Y
R=mstarzinger@chromium.org

Review URL: https://codereview.chromium.org/683113003

Cr-Commit-Position: refs/heads/master@{#24955}
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24955 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

src/heap/mark-compact.cc

index f309eae..bcfa2cb 100644 (file)
@@ -2926,8 +2926,7 @@ class PointersUpdatingVisitor : public ObjectVisitor {
   }
 
   static inline void UpdateSlot(Heap* heap, Object** slot) {
-    Object* obj = reinterpret_cast<Object*>(
-        base::NoBarrier_Load(reinterpret_cast<base::AtomicWord*>(slot)));
+    Object* obj = *slot;
 
     if (!obj->IsHeapObject()) return;
 
@@ -2938,10 +2937,7 @@ class PointersUpdatingVisitor : public ObjectVisitor {
       DCHECK(heap->InFromSpace(heap_obj) ||
              MarkCompactCollector::IsOnEvacuationCandidate(heap_obj));
       HeapObject* target = map_word.ToForwardingAddress();
-      base::NoBarrier_CompareAndSwap(
-          reinterpret_cast<base::AtomicWord*>(slot),
-          reinterpret_cast<base::AtomicWord>(obj),
-          reinterpret_cast<base::AtomicWord>(target));
+      *slot = target;
       DCHECK(!heap->InFromSpace(target) &&
              !MarkCompactCollector::IsOnEvacuationCandidate(target));
     }