| Index: src/heap/heap.cc
|
| diff --git a/src/heap/heap.cc b/src/heap/heap.cc
|
| index afdc7bb4cd397d69625ecdca09c295a668e0a6ae..5dab9451677bf2c340bb075aadbbd2c6a541dc13 100644
|
| --- a/src/heap/heap.cc
|
| +++ b/src/heap/heap.cc
|
| @@ -893,7 +893,8 @@ void Heap::CollectAllAvailableGarbage(const char* gc_reason) {
|
| isolate()->optimizing_compile_dispatcher()->Flush();
|
| }
|
| isolate()->ClearSerializerData();
|
| - set_current_gc_flags(kMakeHeapIterableMask | kReduceMemoryFootprintMask);
|
| + set_current_gc_flags(kAbortIncrementalMarkingMask |
|
| + kReduceMemoryFootprintMask);
|
| isolate_->compilation_cache()->Clear();
|
| const int kMaxNumberOfAttempts = 7;
|
| const int kMinNumberOfAttempts = 2;
|
| @@ -4032,22 +4033,10 @@ AllocationResult Heap::AllocateStruct(InstanceType type) {
|
| }
|
|
|
|
|
| -bool Heap::IsHeapIterable() {
|
| - // TODO(hpayer): This function is not correct. Allocation folding in old
|
| - // space breaks the iterability.
|
| - return new_space_top_after_last_gc_ == new_space()->top();
|
| -}
|
| -
|
| -
|
| void Heap::MakeHeapIterable() {
|
| - DCHECK(AllowHeapAllocation::IsAllowed());
|
| - if (!IsHeapIterable()) {
|
| - CollectAllGarbage(kMakeHeapIterableMask, "Heap::MakeHeapIterable");
|
| - }
|
| if (mark_compact_collector()->sweeping_in_progress()) {
|
| mark_compact_collector()->EnsureSweepingCompleted();
|
| }
|
| - DCHECK(IsHeapIterable());
|
| }
|
|
|
|
|
| @@ -4592,10 +4581,7 @@ void Heap::Verify() {
|
| CHECK(HasBeenSetUp());
|
| HandleScope scope(isolate());
|
|
|
| - if (mark_compact_collector()->sweeping_in_progress()) {
|
| - // We have to wait here for the sweeper threads to have an iterable heap.
|
| - mark_compact_collector()->EnsureSweepingCompleted();
|
| - }
|
| + MakeHeapIterable();
|
|
|
| VerifyPointersVisitor visitor;
|
| IterateRoots(&visitor, VISIT_ONLY_STRONG);
|
|
|