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 ...@@ -238,6 +238,9 @@ class IncrementalMarkingMarkingVisitor
int start_offset = int start_offset =
Max(FixedArray::BodyDescriptor::kStartOffset, chunk->progress_bar()); Max(FixedArray::BodyDescriptor::kStartOffset, chunk->progress_bar());
if (start_offset < object_size) { if (start_offset < object_size) {
#ifdef CONCURRENT_MARKING
heap->incremental_marking()->marking_worklist()->PushBailout(object);
#else
if (ObjectMarking::IsGrey<IncrementalMarking::kAtomicity>( if (ObjectMarking::IsGrey<IncrementalMarking::kAtomicity>(
object, heap->incremental_marking()->marking_state(object))) { object, heap->incremental_marking()->marking_state(object))) {
heap->incremental_marking()->marking_worklist()->Push(object); heap->incremental_marking()->marking_worklist()->Push(object);
...@@ -246,6 +249,7 @@ class IncrementalMarkingMarkingVisitor ...@@ -246,6 +249,7 @@ class IncrementalMarkingMarkingVisitor
object, heap->incremental_marking()->marking_state(object))); object, heap->incremental_marking()->marking_state(object)));
heap->mark_compact_collector()->PushBlack(object); heap->mark_compact_collector()->PushBlack(object);
} }
#endif
int end_offset = int end_offset =
Min(object_size, start_offset + kProgressBarScanningChunk); Min(object_size, start_offset + kProgressBarScanningChunk);
int already_scanned_offset = start_offset; 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