Line data Source code
1 : // Copyright 2011 the V8 project authors. All rights reserved.
2 : // Use of this source code is governed by a BSD-style license that can be
3 : // found in the LICENSE file.
4 :
5 : #ifndef V8_HEAP_STORE_BUFFER_INL_H_
6 : #define V8_HEAP_STORE_BUFFER_INL_H_
7 :
8 : #include "src/heap/store-buffer.h"
9 :
10 : #include "src/heap/heap-inl.h"
11 :
12 : namespace v8 {
13 : namespace internal {
14 :
15 11622 : void StoreBuffer::InsertDeletionIntoStoreBuffer(Address start, Address end) {
16 11622 : if (top_ + sizeof(Address) * 2 > limit_[current_]) {
17 60 : StoreBufferOverflow(heap_->isolate());
18 : }
19 23244 : *top_ = MarkDeletionAddress(start);
20 11622 : top_++;
21 11622 : *top_ = end;
22 11622 : top_++;
23 11622 : }
24 :
25 110605500 : void StoreBuffer::InsertIntoStoreBuffer(Address slot) {
26 110605500 : if (top_ + sizeof(Address) > limit_[current_]) {
27 30116 : StoreBufferOverflow(heap_->isolate());
28 : }
29 110605500 : *top_ = slot;
30 110605500 : top_++;
31 110605500 : }
32 :
33 : } // namespace internal
34 : } // namespace v8
35 :
36 : #endif // V8_HEAP_STORE_BUFFER_INL_H_
|