Commit 3dd84762 authored by ulan@chromium.org's avatar ulan@chromium.org

Revert r24737 "Read object pointer atomically while updating slots"

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
parent 60f71a9b
......@@ -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));
}
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment