| Index: src/incremental-marking-inl.h
|
| diff --git a/src/incremental-marking-inl.h b/src/incremental-marking-inl.h
|
| index bbe9a9d209b36cca76360b2f9b091b755dc0587a..768fc9171f91d5841c9a36810099840cc194c181 100644
|
| --- a/src/incremental-marking-inl.h
|
| +++ b/src/incremental-marking-inl.h
|
| @@ -111,7 +111,7 @@ void IncrementalMarking::BlackToGreyAndUnshift(HeapObject* obj,
|
| if (FLAG_trace_gc) {
|
| PrintPID("Hurrying incremental marking because of lack of progress\n");
|
| }
|
| - marking_speed_ = kMaxMarkingSpeed;
|
| + allocation_marking_factor_ = kMaxAllocationMarkingFactor;
|
| }
|
| }
|
|
|
| @@ -125,6 +125,27 @@ void IncrementalMarking::WhiteToGreyAndPush(HeapObject* obj, MarkBit mark_bit) {
|
| }
|
|
|
|
|
| +bool IncrementalMarking::MarkObjectAndPush(HeapObject* obj) {
|
| + MarkBit mark_bit = Marking::MarkBitFrom(obj);
|
| + if (!mark_bit.Get()) {
|
| + WhiteToGreyAndPush(obj, mark_bit);
|
| + return true;
|
| + }
|
| + return false;
|
| +}
|
| +
|
| +
|
| +bool IncrementalMarking::MarkObjectWithoutPush(HeapObject* obj) {
|
| + MarkBit mark_bit = Marking::MarkBitFrom(obj);
|
| + if (!mark_bit.Get()) {
|
| + mark_bit.Set();
|
| + MemoryChunk::IncrementLiveBytesFromGC(obj->address(), obj->Size());
|
| + return true;
|
| + }
|
| + return false;
|
| +}
|
| +
|
| +
|
| } } // namespace v8::internal
|
|
|
| #endif // V8_INCREMENTAL_MARKING_INL_H_
|
|
|