#include "src/heap/cppgc/marking-verifier.h"
#include <optional>
#include "src/base/logging.h"
#include "src/heap/cppgc/heap-object-header.h"
#include "src/heap/cppgc/marking-visitor.h"
#include "src/heap/cppgc/object-view.h"
#if defined(CPPGC_CAGED_HEAP)
#include "include/cppgc/internal/caged-heap-local-data.h"
#endif
namespace cppgc {
namespace internal {
void VerificationState::VerifyMarked(const void* base_object_payload) const { … }
MarkingVerifierBase::MarkingVerifierBase(
HeapBase& heap, CollectionType collection_type,
VerificationState& verification_state,
std::unique_ptr<cppgc::Visitor> visitor)
: … { … }
void MarkingVerifierBase::Run(StackState stack_state,
std::optional<size_t> expected_marked_bytes) { … }
void MarkingVerifierBase::VisitInConstructionConservatively(
HeapObjectHeader& header, TraceConservativelyCallback callback) { … }
void MarkingVerifierBase::VisitPointer(const void* address) { … }
bool MarkingVerifierBase::VisitNormalPage(NormalPage& page) { … }
bool MarkingVerifierBase::VisitLargePage(LargePage& page) { … }
bool MarkingVerifierBase::VisitHeapObjectHeader(HeapObjectHeader& header) { … }
namespace {
class VerificationVisitor final : public cppgc::Visitor { … };
}
MarkingVerifier::MarkingVerifier(HeapBase& heap_base,
CollectionType collection_type)
: … { … }
}
}