| Index: src/heap/store-buffer.h
|
| diff --git a/src/heap/store-buffer.h b/src/heap/store-buffer.h
|
| index f5af09904d99aebac2d9ad3a9ec4ce0784c2e46e..9eeb00117b8509cd9082b2fdc9f61ee9692ad718 100644
|
| --- a/src/heap/store-buffer.h
|
| +++ b/src/heap/store-buffer.h
|
| @@ -32,6 +32,10 @@
|
|
|
| // This is used to add addresses to the store buffer non-concurrently.
|
| inline void Mark(Address addr);
|
| +
|
| + // This is used to add addresses to the store buffer when multiple threads
|
| + // may operate on the store buffer.
|
| + inline void MarkSynchronized(Address addr);
|
|
|
| // This is used by the heap traversal to enter the addresses into the store
|
| // buffer that should still be in the store buffer after GC. It enters
|
| @@ -212,39 +216,6 @@
|
| StoreBuffer* store_buffer_;
|
| bool stored_state_;
|
| };
|
| -
|
| -class LocalStoreBuffer BASE_EMBEDDED {
|
| - public:
|
| - LocalStoreBuffer() : top_(new Node(nullptr)) {}
|
| -
|
| - ~LocalStoreBuffer() {
|
| - Node* current = top_;
|
| - while (current != nullptr) {
|
| - Node* tmp = current->next;
|
| - delete current;
|
| - current = tmp;
|
| - }
|
| - }
|
| -
|
| - inline void Record(Address addr);
|
| - inline void Process(StoreBuffer* store_buffer);
|
| -
|
| - private:
|
| - static const int kBufferSize = 16 * KB;
|
| -
|
| - struct Node : Malloced {
|
| - explicit Node(Node* next_node) : next(next_node), count(0) {}
|
| -
|
| - inline bool is_full() { return count == kBufferSize; }
|
| -
|
| - Node* next;
|
| - Address buffer[kBufferSize];
|
| - int count;
|
| - };
|
| -
|
| - Node* top_;
|
| -};
|
| -
|
| } // namespace internal
|
| } // namespace v8
|
|
|
|
|