| Index: src/heap/heap.cc
|
| diff --git a/src/heap/heap.cc b/src/heap/heap.cc
|
| index e37c9f6b11de8b333743e8f296486d3561721013..4445665846f2a7d5ffb7cf064b02d444e0883246 100644
|
| --- a/src/heap/heap.cc
|
| +++ b/src/heap/heap.cc
|
| @@ -4770,6 +4770,19 @@ void Heap::ReduceNewSpaceSize() {
|
| }
|
|
|
|
|
| +void Heap::FinalizeIncrementalMarkingIfComplete(const char* comment) {
|
| + if (FLAG_overapproximate_weak_closure &&
|
| + (incremental_marking()->IsReadyToOverApproximateWeakClosure() ||
|
| + (!incremental_marking()->weak_closure_was_overapproximated() &&
|
| + mark_compact_collector_.marking_deque()->IsEmpty()))) {
|
| + OverApproximateWeakClosure(comment);
|
| + } else if (incremental_marking()->IsComplete() ||
|
| + (mark_compact_collector_.marking_deque()->IsEmpty())) {
|
| + CollectAllGarbage(kNoGCFlags, comment);
|
| + }
|
| +}
|
| +
|
| +
|
| bool Heap::TryFinalizeIdleIncrementalMarking(
|
| double idle_time_in_ms, size_t size_of_objects,
|
| size_t final_incremental_mark_compact_speed_in_bytes_per_ms) {
|
|
|