26 const void*
start,
size_t len,
28 const char* it =
static_cast<const char*
>(
start);
33 if (!
object)
continue;
39#if defined(CPPGC_POINTER_COMPRESSION)
41void MarkingVisitorBase::VisitMultipleCompressedMember(
42 const void*
start,
size_t len,
44 const char* it =
static_cast<const char*
>(
start);
45 const char*
end = it + len * cppgc::internal::kSizeofCompressedMember;
46 for (; it <
end; it += cppgc::internal::kSizeofCompressedMember) {
48 reinterpret_cast<const internal::CompressedPointer*
>(it);
49 const void*
object = current->LoadAtomic();
50 if (!
object)
continue;
60 const void* weak_member) {
109#if defined(CPPGC_YOUNG_GENERATION)
114 heap_.remembered_set().AddInConstructionObjectToBeRetraced(header);
125 : mutator_marking_state_(marking_state) {}
134 const void* weak_root,
137 object, desc, weak_callback, weak_root);
151 {parameter,
callback, deferred_size});
153 .AccountDeferredMarkedBytes(
static BasePage * FromPayload(void *)
void RegisterWeakCustomCallback(WeakCallback, const void *)
MarkingWorklists::ConcurrentMarkingBailoutWorklist::Local & concurrent_marking_bailout_worklist()
void RegisterWeakReferenceIfNeeded(const void *, TraceDescriptor, WeakCallback, const void *)
void RegisterMovableReference(const void **slot)
void ProcessEphemeron(const void *, const void *, TraceDescriptor, Visitor &)
void ProcessWeakContainer(const void *, TraceDescriptor, WeakCallback, const void *)
void AccountMarkedBytes(const HeapObjectHeader &)
ConcurrentMarkingVisitor(HeapBase &, ConcurrentMarkingState &)
bool DeferTraceToMutatorThreadIfConcurrent(const void *, TraceCallback, size_t) final
void VisitFullyConstructedConservatively(HeapObjectHeader &) final
MutatorMarkingState & marking_state_
void VisitInConstructionConservatively(HeapObjectHeader &, TraceConservativelyCallback) final
ConservativeMarkingVisitor(HeapBase &, MutatorMarkingState &, cppgc::Visitor &)
void VisitPointer(const void *) final
cppgc::Visitor & visitor_
void(ConservativeTracingVisitor *, const HeapObjectHeader &) TraceConservativelyCallback
virtual void VisitFullyConstructedConservatively(HeapObjectHeader &)
virtual void TraceConservativelyIfNeeded(const void *)
bool generational_gc_supported() const
void MarkAndPush(const void *, TraceDescriptor)
void VisitEphemeron(const void *, const void *, TraceDescriptor) final
void VisitMultipleUncompressedMember(const void *, size_t, TraceDescriptorCallback) final
void VisitWeak(const void *, TraceDescriptor, WeakCallback, const void *) final
void VisitWeakContainer(const void *object, TraceDescriptor strong_desc, TraceDescriptor weak_desc, WeakCallback callback, const void *data) final
void Visit(const void *, TraceDescriptor) final
void HandleMovableReference(const void **) final
BasicMarkingState & marking_state_
void RegisterWeakCallback(WeakCallback, const void *) final
MarkingVisitorBase(HeapBase &, BasicMarkingState &)
void InvokeWeakRootsCallbackIfNeeded(const void *, TraceDescriptor, WeakCallback, const void *)
bool IsMarkedWeakContainer(HeapObjectHeader &)
void ReTraceMarkedWeakContainer(cppgc::Visitor &, HeapObjectHeader &)
bool MarkNoPush(HeapObjectHeader &header)
MutatorMarkingVisitor(HeapBase &, MutatorMarkingState &)
V8_INLINE const void * LoadAtomic() const
MutatorMarkingState & mutator_marking_state_
void VisitRoot(const void *, TraceDescriptor, const SourceLocation &) final
void VisitWeakRoot(const void *, TraceDescriptor, WeakCallback, const void *, const SourceLocation &) final
RootMarkingVisitor(MutatorMarkingState &)
NonAtomicMarkingState * marking_state_
static constexpr size_t kSizeOfUncompressedMember
void(*)(const LivenessBroker &, const void *) WeakCallback
TraceDescriptor(*)(const void *address) TraceDescriptorCallback
void(*)(Visitor *visitor, const void *object) TraceCallback
#define DCHECK(condition)
std::unique_ptr< ValueMirror > key