Commit 69aa6e57 authored by Ulan Degenbaev's avatar Ulan Degenbaev Committed by Commit Bot

[heap] Ensure that VisitFixedArray pushes grey or black array

in marking worklist.

Bug: chromium:769173
Change-Id: I4b3ce27d37bec19ec5cc342b4d26a2a45af34b5f
Reviewed-on: https://chromium-review.googlesource.com/691728Reviewed-by: 's avatarMichael Lippautz <mlippautz@chromium.org>
Commit-Queue: Ulan Degenbaev <ulan@chromium.org>
Cr-Commit-Position: refs/heads/master@{#48224}
parent cbaa5682
......@@ -214,11 +214,17 @@ class IncrementalMarkingMarkingVisitor final
int start_offset =
Max(FixedArray::BodyDescriptor::kStartOffset, chunk->progress_bar());
if (start_offset < object_size) {
// Ensure that the object is either grey or black before pushing it
// into marking worklist.
incremental_marking_->marking_state()->WhiteToGrey(object);
if (FLAG_concurrent_marking) {
incremental_marking_->marking_worklist()->PushBailout(object);
} else {
incremental_marking_->marking_worklist()->Push(object);
}
DCHECK(incremental_marking_->marking_state()->IsGrey(object) ||
incremental_marking_->marking_state()->IsBlack(object));
int end_offset =
Min(object_size, start_offset + kProgressBarScanningChunk);
int already_scanned_offset = start_offset;
......
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