[heap] Do not clear mark bits of black large objects on right trim.

BUG=

Review-Url: https://codereview.chromium.org/2592603002
Cr-Commit-Position: refs/heads/master@{#41838}
This commit is contained in:
hpayer 2016-12-20 01:36:51 -08:00 committed by Commit bot
parent 17318bbd39
commit 44b70cb744

View File

@ -3234,8 +3234,6 @@ void Heap::RightTrimFixedArray(FixedArrayBase* object, int elements_to_trim) {
// of the object changed significantly. // of the object changed significantly.
if (!lo_space()->Contains(object)) { if (!lo_space()->Contains(object)) {
CreateFillerObjectAt(new_end, bytes_to_trim, ClearRecordedSlots::kYes); CreateFillerObjectAt(new_end, bytes_to_trim, ClearRecordedSlots::kYes);
}
// Clear the mark bits of the black area that belongs now to the filler. // Clear the mark bits of the black area that belongs now to the filler.
// This is an optimization. The sweeper will release black fillers anyway. // This is an optimization. The sweeper will release black fillers anyway.
if (incremental_marking()->black_allocation() && if (incremental_marking()->black_allocation() &&
@ -3245,6 +3243,7 @@ void Heap::RightTrimFixedArray(FixedArrayBase* object, int elements_to_trim) {
page->AddressToMarkbitIndex(new_end), page->AddressToMarkbitIndex(new_end),
page->AddressToMarkbitIndex(new_end + bytes_to_trim)); page->AddressToMarkbitIndex(new_end + bytes_to_trim));
} }
}
// Initialize header of the trimmed array. We are storing the new length // Initialize header of the trimmed array. We are storing the new length
// using release store after creating a filler for the left-over space to // using release store after creating a filler for the left-over space to