| Index: src/incremental-marking-inl.h
|
| diff --git a/src/incremental-marking-inl.h b/src/incremental-marking-inl.h
|
| index 33ffce335e7b0895a0ccc77b279d997c341041c9..37b0248928088ded2bdfe074edfea0ac94398293 100644
|
| --- a/src/incremental-marking-inl.h
|
| +++ b/src/incremental-marking-inl.h
|
| @@ -35,7 +35,7 @@ namespace internal {
|
|
|
|
|
| void IncrementalMarking::RecordWrite(HeapObject* obj, Object* value) {
|
| - if (!IsStopped() && value->IsHeapObject()) {
|
| + if (IsMarking() && value->IsHeapObject()) {
|
| MarkBit value_bit = heap_->marking()->MarkBitFrom(HeapObject::cast(value));
|
| if (IsWhite(value_bit)) {
|
| MarkBit obj_bit = heap_->marking()->MarkBitFrom(obj);
|
| @@ -49,7 +49,7 @@ void IncrementalMarking::RecordWrite(HeapObject* obj, Object* value) {
|
|
|
|
|
| void IncrementalMarking::RecordWriteOf(HeapObject* value) {
|
| - if (state_ != STOPPED) {
|
| + if (IsMarking()) {
|
| MarkBit value_bit = heap_->marking()->MarkBitFrom(value);
|
| if (IsWhite(value_bit)) {
|
| WhiteToGreyAndPush(value, value_bit);
|
| @@ -60,7 +60,7 @@ void IncrementalMarking::RecordWriteOf(HeapObject* value) {
|
|
|
|
|
| void IncrementalMarking::RecordWrites(HeapObject* obj) {
|
| - if (!IsStopped()) {
|
| + if (IsMarking()) {
|
| MarkBit obj_bit = heap_->marking()->MarkBitFrom(obj);
|
| if (IsBlack(obj_bit)) {
|
| BlackToGreyAndUnshift(obj, obj_bit);
|
|
|