OLD | NEW |
1 // Copyright 2012 the V8 project authors. All rights reserved. | 1 // Copyright 2012 the V8 project authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #include "src/heap/heap.h" | 5 #include "src/heap/heap.h" |
6 | 6 |
7 #include "src/accessors.h" | 7 #include "src/accessors.h" |
8 #include "src/api.h" | 8 #include "src/api.h" |
9 #include "src/ast/context-slot-cache.h" | 9 #include "src/ast/context-slot-cache.h" |
10 #include "src/base/bits.h" | 10 #include "src/base/bits.h" |
(...skipping 938 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
949 EnsureFillerObjectAtTop(); | 949 EnsureFillerObjectAtTop(); |
950 | 950 |
951 if (IsYoungGenerationCollector(collector) && | 951 if (IsYoungGenerationCollector(collector) && |
952 !incremental_marking()->IsStopped()) { | 952 !incremental_marking()->IsStopped()) { |
953 if (FLAG_trace_incremental_marking) { | 953 if (FLAG_trace_incremental_marking) { |
954 isolate()->PrintWithTimestamp( | 954 isolate()->PrintWithTimestamp( |
955 "[IncrementalMarking] Scavenge during marking.\n"); | 955 "[IncrementalMarking] Scavenge during marking.\n"); |
956 } | 956 } |
957 } | 957 } |
958 | 958 |
959 if (collector == MARK_COMPACTOR && !ShouldFinalizeIncrementalMarking() && | 959 if (collector == MARK_COMPACTOR && FLAG_incremental_marking && |
960 !ShouldAbortIncrementalMarking() && !incremental_marking()->IsStopped() && | 960 !ShouldFinalizeIncrementalMarking() && !ShouldAbortIncrementalMarking() && |
961 !incremental_marking()->should_hurry() && FLAG_incremental_marking && | 961 !incremental_marking()->IsStopped() && |
962 OldGenerationSpaceAvailable() <= 0) { | 962 !incremental_marking()->should_hurry() && |
| 963 !IsCloseToOutOfMemory(new_space_->Capacity())) { |
963 if (!incremental_marking()->IsComplete() && | 964 if (!incremental_marking()->IsComplete() && |
964 !mark_compact_collector()->marking_deque()->IsEmpty() && | 965 !mark_compact_collector()->marking_deque()->IsEmpty() && |
965 !FLAG_gc_global) { | 966 !FLAG_gc_global) { |
966 if (FLAG_trace_incremental_marking) { | 967 if (FLAG_trace_incremental_marking) { |
967 isolate()->PrintWithTimestamp( | 968 isolate()->PrintWithTimestamp( |
968 "[IncrementalMarking] Delaying MarkSweep.\n"); | 969 "[IncrementalMarking] Delaying MarkSweep.\n"); |
969 } | 970 } |
970 collector = YoungGenerationCollector(); | 971 collector = YoungGenerationCollector(); |
971 collector_reason = "incremental marking delaying mark-sweep"; | 972 collector_reason = "incremental marking delaying mark-sweep"; |
972 } | 973 } |
(...skipping 5489 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
6462 } | 6463 } |
6463 | 6464 |
6464 | 6465 |
6465 // static | 6466 // static |
6466 int Heap::GetStaticVisitorIdForMap(Map* map) { | 6467 int Heap::GetStaticVisitorIdForMap(Map* map) { |
6467 return StaticVisitorBase::GetVisitorId(map); | 6468 return StaticVisitorBase::GetVisitorId(map); |
6468 } | 6469 } |
6469 | 6470 |
6470 } // namespace internal | 6471 } // namespace internal |
6471 } // namespace v8 | 6472 } // namespace v8 |
OLD | NEW |