Index: src/heap.cc |
diff --git a/src/heap.cc b/src/heap.cc |
index 1f97fc3859bddc841da80426bc0c4273f61db6bb..77ebb2a02b298eb8702461aa03d724d5f94023a0 100644 |
--- a/src/heap.cc |
+++ b/src/heap.cc |
@@ -3654,7 +3654,8 @@ void Heap::InitializeAllocationSitesScratchpad() { |
} |
-void Heap::AddAllocationSiteToScratchpad(AllocationSite* site) { |
+void Heap::AddAllocationSiteToScratchpad(AllocationSite* site, |
+ ScratchpadSlotMode mode) { |
if (allocation_sites_scratchpad_length_ < kAllocationSiteScratchpadSize) { |
// We cannot use the normal write-barrier because slots need to be |
// recorded with non-incremental marking as well. We have to explicitly |
@@ -3663,7 +3664,11 @@ void Heap::AddAllocationSiteToScratchpad(AllocationSite* site) { |
allocation_sites_scratchpad_length_, site, SKIP_WRITE_BARRIER); |
Object** slot = allocation_sites_scratchpad()->RawFieldOfElementAt( |
allocation_sites_scratchpad_length_); |
- mark_compact_collector()->RecordSlot(slot, slot, *slot); |
+ |
+ if (mode == RECORD_SCRATCHPAD_SLOT) { |
+ mark_compact_collector()->RecordSlot( |
Michael Starzinger
2014/03/05 13:58:11
Can we get a short comment explaining why IGNORE_O
Hannes Payer (out of office)
2014/03/05 14:02:06
Done.
|
+ slot, slot, *slot, SlotsBuffer::IGNORE_OVERFLOW); |
+ } |
allocation_sites_scratchpad_length_++; |
} |
} |