diff options
Diffstat (limited to 'deps/v8/src/mark-compact-inl.h')
-rw-r--r-- | deps/v8/src/mark-compact-inl.h | 13 |
1 files changed, 13 insertions, 0 deletions
diff --git a/deps/v8/src/mark-compact-inl.h b/deps/v8/src/mark-compact-inl.h index 64faf82dad..a9107bd277 100644 --- a/deps/v8/src/mark-compact-inl.h +++ b/deps/v8/src/mark-compact-inl.h @@ -66,6 +66,19 @@ void MarkCompactCollector::MarkObject(HeapObject* obj, MarkBit mark_bit) { } +bool MarkCompactCollector::MarkObjectWithoutPush(HeapObject* object) { + MarkBit mark = Marking::MarkBitFrom(object); + bool old_mark = mark.Get(); + if (!old_mark) SetMark(object, mark); + return old_mark; +} + + +void MarkCompactCollector::MarkObjectAndPush(HeapObject* object) { + if (!MarkObjectWithoutPush(object)) marking_deque_.PushBlack(object); +} + + void MarkCompactCollector::SetMark(HeapObject* obj, MarkBit mark_bit) { ASSERT(!mark_bit.Get()); ASSERT(Marking::MarkBitFrom(obj) == mark_bit); |