diff options
Diffstat (limited to 'deps/v8/src/heap/incremental-marking.cc')
-rw-r--r-- | deps/v8/src/heap/incremental-marking.cc | 24 |
1 files changed, 14 insertions, 10 deletions
diff --git a/deps/v8/src/heap/incremental-marking.cc b/deps/v8/src/heap/incremental-marking.cc index 4868adc26e..a7b56e4315 100644 --- a/deps/v8/src/heap/incremental-marking.cc +++ b/deps/v8/src/heap/incremental-marking.cc @@ -203,11 +203,13 @@ class IncrementalMarkingRootMarkingVisitor : public RootVisitor { IncrementalMarking* incremental_marking) : heap_(incremental_marking->heap()) {} - void VisitRootPointer(Root root, Object** p) override { + void VisitRootPointer(Root root, const char* description, + Object** p) override { MarkObjectByPointer(p); } - void VisitRootPointers(Root root, Object** start, Object** end) override { + void VisitRootPointers(Root root, const char* description, Object** start, + Object** end) override { for (Object** p = start; p < end; p++) MarkObjectByPointer(p); } @@ -653,15 +655,17 @@ bool IncrementalMarking::IsFixedArrayWithProgressBar(HeapObject* obj) { int IncrementalMarking::VisitObject(Map* map, HeapObject* obj) { DCHECK(marking_state()->IsGrey(obj) || marking_state()->IsBlack(obj)); - // The object can already be black in two cases: - // 1. The object is a fixed array with the progress bar. - // 2. The object is a JSObject that was colored black before - // unsafe layout change. - // 3. The object is a string that was colored black before - // unsafe layout change. if (!marking_state()->GreyToBlack(obj)) { - DCHECK(IsFixedArrayWithProgressBar(obj) || obj->IsJSObject() || - obj->IsString()); + // The object can already be black in these cases: + // 1. The object is a fixed array with the progress bar. + // 2. The object is a JSObject that was colored black before + // unsafe layout change. + // 3. The object is a string that was colored black before + // unsafe layout change. + // 4. The object is materizalized by the deoptimizer. + DCHECK(obj->IsHashTable() || obj->IsPropertyArray() || + obj->IsContextExtension() || obj->IsFixedArray() || + obj->IsJSObject() || obj->IsString()); } DCHECK(marking_state()->IsBlack(obj)); WhiteToGreyAndPush(map); |