V8 Project
v8::internal::RootMarkingVisitor Class Reference
+ Inheritance diagram for v8::internal::RootMarkingVisitor:
+ Collaboration diagram for v8::internal::RootMarkingVisitor:

Public Member Functions

 RootMarkingVisitor (Heap *heap)
 
void VisitPointer (Object **p)
 
void VisitPointers (Object **start, Object **end)
 
void VisitNextCodeLink (Object **p)
 

Private Member Functions

void MarkObjectByPointer (Object **p)
 

Private Attributes

MarkCompactCollectorcollector_
 

Detailed Description

Definition at line 1771 of file mark-compact.cc.

Constructor & Destructor Documentation

◆ RootMarkingVisitor()

v8::internal::RootMarkingVisitor::RootMarkingVisitor ( Heap heap)
inlineexplicit

Definition at line 1773 of file mark-compact.cc.

1774  : collector_(heap->mark_compact_collector()) {}
MarkCompactCollector * collector_

Member Function Documentation

◆ MarkObjectByPointer()

void v8::internal::RootMarkingVisitor::MarkObjectByPointer ( Object **  p)
inlineprivate

Definition at line 1787 of file mark-compact.cc.

1787  {
1788  if (!(*p)->IsHeapObject()) return;
1789 
1790  // Replace flat cons strings in place.
1791  HeapObject* object = ShortCircuitConsString(p);
1792  MarkBit mark_bit = Marking::MarkBitFrom(object);
1793  if (mark_bit.Get()) return;
1794 
1795  Map* map = object->map();
1796  // Mark the object.
1797  collector_->SetMark(object, mark_bit);
1798 
1799  // Mark the map pointer and body, and push them on the marking stack.
1800  MarkBit map_mark = Marking::MarkBitFrom(map);
1801  collector_->MarkObject(map, map_mark);
1802  MarkCompactMarkingVisitor::IterateBody(map, object);
1803 
1804  // Mark all the objects reachable from the map and body. May leave
1805  // overflowed objects in the heap.
1807  }
enable harmony numeric enable harmony object literal extensions Optimize object Array DOM strings and string trace pretenuring decisions of HAllocate instructions Enables optimizations which favor memory size over execution speed maximum source size in bytes considered for a single inlining maximum cumulative number of AST nodes considered for inlining trace the tracking of allocation sites deoptimize every n garbage collections perform array bounds checks elimination analyze liveness of environment slots and zap dead values flushes the cache of optimized code for closures on every GC allow uint32 values on optimize frames if they are used only in safe operations track concurrent recompilation artificial compilation delay in ms do not emit check maps for constant values that have a leaf map
static HeapObject * ShortCircuitConsString(Object **p)

References collector_, v8::internal::MarkCompactCollector::EmptyMarkingDeque(), v8::internal::MarkBit::Get(), map, and v8::internal::ShortCircuitConsString().

Referenced by VisitPointer(), and VisitPointers().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ VisitNextCodeLink()

void v8::internal::RootMarkingVisitor::VisitNextCodeLink ( Object **  p)
inline

Definition at line 1784 of file mark-compact.cc.

1784 {}

◆ VisitPointer()

void v8::internal::RootMarkingVisitor::VisitPointer ( Object **  p)
inline

Definition at line 1776 of file mark-compact.cc.

1776 { MarkObjectByPointer(p); }

References MarkObjectByPointer().

+ Here is the call graph for this function:

◆ VisitPointers()

void v8::internal::RootMarkingVisitor::VisitPointers ( Object **  start,
Object **  end 
)
inline

Definition at line 1778 of file mark-compact.cc.

1778  {
1779  for (Object** p = start; p < end; p++) MarkObjectByPointer(p);
1780  }
kSerializedDataOffset Object
Definition: objects-inl.h:5322

References MarkObjectByPointer().

+ Here is the call graph for this function:

Member Data Documentation

◆ collector_

MarkCompactCollector* v8::internal::RootMarkingVisitor::collector_
private

Definition at line 1809 of file mark-compact.cc.

Referenced by MarkObjectByPointer().


The documentation for this class was generated from the following file: