diff options
Diffstat (limited to 'deps/v8/src/heap/store-buffer.cc')
-rw-r--r-- | deps/v8/src/heap/store-buffer.cc | 28 |
1 files changed, 20 insertions, 8 deletions
diff --git a/deps/v8/src/heap/store-buffer.cc b/deps/v8/src/heap/store-buffer.cc index aac68116ce..591d28fe9f 100644 --- a/deps/v8/src/heap/store-buffer.cc +++ b/deps/v8/src/heap/store-buffer.cc @@ -55,9 +55,11 @@ void StoreBuffer::SetUp() { old_limit_ = old_start_ + initial_length; old_reserved_limit_ = old_start_ + kOldStoreBufferLength; - CHECK(old_virtual_memory_->Commit(reinterpret_cast<void*>(old_start_), - (old_limit_ - old_start_) * kPointerSize, - false)); + if (!old_virtual_memory_->Commit(reinterpret_cast<void*>(old_start_), + (old_limit_ - old_start_) * kPointerSize, + false)) { + V8::FatalProcessOutOfMemory("StoreBuffer::SetUp"); + } DCHECK(reinterpret_cast<Address>(start_) >= virtual_memory_->address()); DCHECK(reinterpret_cast<Address>(limit_) >= virtual_memory_->address()); @@ -71,9 +73,11 @@ void StoreBuffer::SetUp() { DCHECK((reinterpret_cast<uintptr_t>(limit_ - 1) & kStoreBufferOverflowBit) == 0); - CHECK(virtual_memory_->Commit(reinterpret_cast<Address>(start_), - kStoreBufferSize, - false)); // Not executable. + if (!virtual_memory_->Commit(reinterpret_cast<Address>(start_), + kStoreBufferSize, + false)) { // Not executable. + V8::FatalProcessOutOfMemory("StoreBuffer::SetUp"); + } heap_->public_set_store_buffer_top(start_); hash_set_1_ = new uintptr_t[kHashSetLength]; @@ -81,6 +85,9 @@ void StoreBuffer::SetUp() { hash_sets_are_empty_ = false; ClearFilteringHashSets(); + + heap_->isolate()->set_store_buffer_hash_set_1_address(hash_set_1_); + heap_->isolate()->set_store_buffer_hash_set_2_address(hash_set_2_); } @@ -130,8 +137,10 @@ void StoreBuffer::EnsureSpace(intptr_t space_needed) { while (old_limit_ - old_top_ < space_needed && old_limit_ < old_reserved_limit_) { size_t grow = old_limit_ - old_start_; // Double size. - CHECK(old_virtual_memory_->Commit(reinterpret_cast<void*>(old_limit_), - grow * kPointerSize, false)); + if (!old_virtual_memory_->Commit(reinterpret_cast<void*>(old_limit_), + grow * kPointerSize, false)) { + V8::FatalProcessOutOfMemory("StoreBuffer::EnsureSpace"); + } old_limit_ += grow; } @@ -554,6 +563,9 @@ void StoreBuffer::IteratePointersToNewSpace(ObjectSlotCallback slot_callback, void StoreBuffer::Compact() { + CHECK(hash_set_1_ == heap_->isolate()->store_buffer_hash_set_1_address()); + CHECK(hash_set_2_ == heap_->isolate()->store_buffer_hash_set_2_address()); + Address* top = reinterpret_cast<Address*>(heap_->store_buffer_top()); if (top == start_) return; |