summaryrefslogtreecommitdiff
path: root/deps/v8/src/heap/incremental-marking.cc
diff options
context:
space:
mode:
Diffstat (limited to 'deps/v8/src/heap/incremental-marking.cc')
-rw-r--r--deps/v8/src/heap/incremental-marking.cc24
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);