Commit 49792792 authored by hpayer's avatar hpayer Committed by Commit bot

Remove all atomic access from store buffer.

Store buffer does not contain stale pointers anymore. Hence, sweeper threads and store buffer processing does not collide.

BUG=

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

Cr-Commit-Position: refs/heads/master@{#27217}
parent 5095a6f5
......@@ -6,7 +6,6 @@
#include "src/v8.h"
#include "src/base/atomicops.h"
#include "src/counters.h"
#include "src/heap/store-buffer-inl.h"
......@@ -363,10 +362,7 @@ void StoreBuffer::ClearInvalidStoreBufferEntries() {
for (Address* current = old_start_; current < old_top_; current++) {
Address addr = *current;
Object** slot = reinterpret_cast<Object**>(*current);
// Use a NoBarrier_Load here since the slot can be in a dead object
// which may be touched by the concurrent sweeper thread.
Object* object = reinterpret_cast<Object*>(
base::NoBarrier_Load(reinterpret_cast<base::AtomicWord*>(slot)));
Object* object = *slot;
if (heap_->InNewSpace(object)) {
if (heap_->mark_compact_collector()->IsSlotInLiveObject(
reinterpret_cast<HeapObject**>(slot),
......
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