Commit 8b97f512 authored by Ulan Degenbaev's avatar Ulan Degenbaev Committed by Commit Bot

[heap] Fix incremental marking of fixed array with progress bar when

concurrent marking is on.

BUG=chromium:694255

Change-Id: I3cd74af9a3f7fb02d982d9366a6a2ebd119a92b2
Reviewed-on: https://chromium-review.googlesource.com/554627Reviewed-by: 's avatarMichael Lippautz <mlippautz@chromium.org>
Commit-Queue: Ulan Degenbaev <ulan@chromium.org>
Cr-Commit-Position: refs/heads/master@{#46324}
parent 347e6215
......@@ -238,6 +238,9 @@ class IncrementalMarkingMarkingVisitor
int start_offset =
Max(FixedArray::BodyDescriptor::kStartOffset, chunk->progress_bar());
if (start_offset < object_size) {
#ifdef CONCURRENT_MARKING
heap->incremental_marking()->marking_worklist()->PushBailout(object);
#else
if (ObjectMarking::IsGrey<IncrementalMarking::kAtomicity>(
object, heap->incremental_marking()->marking_state(object))) {
heap->incremental_marking()->marking_worklist()->Push(object);
......@@ -246,6 +249,7 @@ class IncrementalMarkingMarkingVisitor
object, heap->incremental_marking()->marking_state(object)));
heap->mark_compact_collector()->PushBlack(object);
}
#endif
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