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
This commit is contained in:
parent
9a0a86fd4c
commit
f3b95f11d2
@ -3621,8 +3621,14 @@ void Heap::InitializeAllocationSitesScratchpad() {
|
||||
|
||||
void Heap::AddAllocationSiteToScratchpad(AllocationSite* site) {
|
||||
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_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_++;
|
||||
}
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user