aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBo Liu <boliu@google.com>2014-11-04 08:53:58 -0800
committerBo Liu <boliu@google.com>2014-11-04 16:56:24 +0000
commitfc22d3606c1db6f75644725729c9425fe640a1a3 (patch)
tree351439ef5c626b2ac45e8f65e6f39e52e2ded7aa
parentef055f47ab5ab7698b9c05e5d8b19d55af9d3e2c (diff)
downloadv8-fc22d3606c1db6f75644725729c9425fe640a1a3.tar.gz
Cherry-pick: Revert r24737 "Read object pointer atomically while updating slots"
Cherry-pick of https://codereview.chromium.org/683113003/ BUG: 18208160 Change-Id: I77a6b5729b26f47311bfd1fa12c199e9ddf087f0
-rw-r--r--src/heap/mark-compact.cc8
1 files 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<Object*>(
- base::NoBarrier_Load(reinterpret_cast<base::AtomicWord*>(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<base::AtomicWord*>(slot),
- reinterpret_cast<base::AtomicWord>(obj),
- reinterpret_cast<base::AtomicWord>(target));
+ *slot = target;
DCHECK(!heap->InFromSpace(target) &&
!MarkCompactCollector::IsOnEvacuationCandidate(target));
}