| Index: src/heap/store-buffer-inl.h
|
| diff --git a/src/heap/store-buffer-inl.h b/src/heap/store-buffer-inl.h
|
| index e11ad87087ccf039b6076a76d3a408a66a85d6fa..454b2c22929ae41c72bdba838f1a10302fe715aa 100644
|
| --- a/src/heap/store-buffer-inl.h
|
| +++ b/src/heap/store-buffer-inl.h
|
| @@ -26,12 +26,6 @@ void StoreBuffer::Mark(Address addr) {
|
| }
|
|
|
|
|
| -inline void StoreBuffer::MarkSynchronized(Address addr) {
|
| - base::LockGuard<base::Mutex> lock_guard(&mutex_);
|
| - Mark(addr);
|
| -}
|
| -
|
| -
|
| void StoreBuffer::EnterDirectlyIntoStoreBuffer(Address addr) {
|
| if (store_buffer_rebuilding_enabled_) {
|
| SLOW_DCHECK(!heap_->code_space()->Contains(addr) &&
|
| @@ -48,6 +42,22 @@ void StoreBuffer::EnterDirectlyIntoStoreBuffer(Address addr) {
|
| }
|
| }
|
| }
|
| +
|
| +void LocalStoreBuffer::Record(Address addr) {
|
| + if (top_->is_full()) top_ = new Node(top_);
|
| + top_->buffer[top_->count++] = addr;
|
| +}
|
| +
|
| +void LocalStoreBuffer::Process(StoreBuffer* store_buffer) {
|
| + Node* current = top_;
|
| + while (current != nullptr) {
|
| + for (int i = 0; i < current->count; i++) {
|
| + store_buffer->Mark(current->buffer[i]);
|
| + }
|
| + current = current->next;
|
| + }
|
| +}
|
| +
|
| } // namespace internal
|
| } // namespace v8
|
|
|
|
|