Index: src/heap.cc |
=================================================================== |
--- src/heap.cc (revision 2737) |
+++ src/heap.cc (working copy) |
@@ -465,8 +465,9 @@ |
old_gen_allocation_limit_ = |
old_gen_size + Max(kMinimumAllocationLimit, old_gen_size / 2); |
old_gen_exhausted_ = false; |
+ } else { |
+ Scavenge(); |
} |
- Scavenge(); |
Counters::objs_since_last_young.Set(0); |
PostGarbageCollectionProcessing(); |
@@ -520,6 +521,12 @@ |
Counters::objs_since_last_full.Set(0); |
context_disposed_pending_ = false; |
+ |
+ Scavenge(); |
+ |
+ // Shrink new space as much as possible after compacting full |
+ // garbage collections. |
+ if (is_compacting) new_space_.Shrink(); |
} |
@@ -668,8 +675,6 @@ |
survived_since_last_expansion_ > new_space_.Capacity()) { |
// Grow the size of new space if there is room to grow and enough |
// data has survived scavenge since the last expansion. |
- // TODO(1240712): NewSpace::Grow has a return value which is |
- // ignored here. |
new_space_.Grow(); |
survived_since_last_expansion_ = 0; |
} |