Commit f3b95f11 authored by hpayer@chromium.org's avatar hpayer@chromium.org

Make sure that allocation site scratchpad entries get recorded.

BUG=
R=mstarzinger@chromium.org

Review URL: https://codereview.chromium.org/153173008

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@19268 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
parent 9a0a86fd
...@@ -3621,8 +3621,14 @@ void Heap::InitializeAllocationSitesScratchpad() { ...@@ -3621,8 +3621,14 @@ void Heap::InitializeAllocationSitesScratchpad() {
void Heap::AddAllocationSiteToScratchpad(AllocationSite* site) { void Heap::AddAllocationSiteToScratchpad(AllocationSite* site) {
if (allocation_sites_scratchpad_length_ < kAllocationSiteScratchpadSize) { 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
// record the slot to take evacuation candidates into account.
allocation_sites_scratchpad()->set( allocation_sites_scratchpad()->set(
allocation_sites_scratchpad_length_, 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);
allocation_sites_scratchpad_length_++; allocation_sites_scratchpad_length_++;
} }
} }
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment