Index: src/heap/heap.cc |
diff --git a/src/heap/heap.cc b/src/heap/heap.cc |
index 46f62f001d4f2da005586b16de92b8191520458a..945add8e95d370444b1882e9fe4f97ca599e7955 100644 |
--- a/src/heap/heap.cc |
+++ b/src/heap/heap.cc |
@@ -1382,6 +1382,8 @@ void Heap::CallGCEpilogueCallbacks(GCType gc_type, |
void Heap::MarkCompact() { |
+ PauseInlineAllocationObserversScope pause_observers(new_space()); |
+ |
gc_state_ = MARK_COMPACT; |
LOG(isolate_, ResourceEvent("markcompact", "begin")); |
@@ -1586,7 +1588,7 @@ void Heap::Scavenge() { |
// Bump-pointer allocations done during scavenge are not real allocations. |
// Pause the inline allocation steps. |
- new_space()->PauseInlineAllocationObservers(); |
+ PauseInlineAllocationObserversScope pause_observers(new_space()); |
#ifdef VERIFY_HEAP |
if (FLAG_verify_heap) VerifyNonPointerSpacePointers(this); |
@@ -1717,8 +1719,6 @@ void Heap::Scavenge() { |
// Set age mark. |
new_space_.set_age_mark(new_space_.top()); |
- new_space()->ResumeInlineAllocationObservers(); |
- |
array_buffer_tracker()->FreeDead(true); |
// Update how much has survived scavenge. |