| Index: src/heap/store-buffer-inl.h
|
| diff --git a/src/heap/store-buffer-inl.h b/src/heap/store-buffer-inl.h
|
| index cf88e25aea934293fe7e2c66e96fabbbf25a1e9c..920ec3411dc16687efc604441a3f3037818f4c9d 100644
|
| --- a/src/heap/store-buffer-inl.h
|
| +++ b/src/heap/store-buffer-inl.h
|
| @@ -13,6 +13,22 @@
|
| namespace v8 {
|
| namespace internal {
|
|
|
| +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++) {
|
| + Address slot = current->buffer[i];
|
| + Page* page = Page::FromAnyPointerAddress(heap_, slot);
|
| + RememberedSet<OLD_TO_NEW>::Insert(page, slot);
|
| + }
|
| + current = current->next;
|
| + }
|
| +}
|
|
|
| } // namespace internal
|
| } // namespace v8
|
|
|