Commit 424f5b9d authored by Ulan Degenbaev's avatar Ulan Degenbaev Committed by Commit Bot

[heap] Clear from-space live bytes in concurrent marker after scavenge.

Bug: chromium:757843
Change-Id: Ia3cf4e2126cbe567ae6f32fe4ccef631e028eaf9
Reviewed-on: https://chromium-review.googlesource.com/625879
Commit-Queue: Ulan Degenbaev <ulan@chromium.org>
Reviewed-by: 's avatarMichael Lippautz <mlippautz@chromium.org>
Cr-Commit-Position: refs/heads/master@{#47515}
parent 8673108d
......@@ -1982,6 +1982,15 @@ void Heap::Scavenge() {
incremental_marking()->UpdateMarkingWorklistAfterScavenge();
if (FLAG_concurrent_marking) {
// Ensure that concurrent marker does not track pages that are
// going to be unmapped.
for (Page* p : PageRange(new_space()->FromSpaceStart(),
new_space()->FromSpaceEnd())) {
concurrent_marking()->ClearLiveness(p);
}
}
ScavengeWeakObjectRetainer weak_object_retainer(this);
ProcessYoungWeakReferences(&weak_object_retainer);
......
......@@ -2529,6 +2529,11 @@ void MinorMarkCompactCollector::CollectGarbage() {
heap()->new_space()->FromSpaceEnd())) {
DCHECK(!p->IsFlagSet(Page::SWEEP_TO_ITERATE));
non_atomic_marking_state()->ClearLiveness(p);
if (FLAG_concurrent_marking) {
// Ensure that concurrent marker does not track pages that are
// going to be unmapped.
heap()->concurrent_marking()->ClearLiveness(p);
}
}
}
......
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