20 ASSERT(obj->IsHeapObject());
24 FATAL(
"Marked free list element encountered %#" Px "\n",
addr);
27 switch (mark_expectation_) {
30 FATAL(
"Marked object encountered %#" Px "\n",
addr);
37 FATAL(
"Unmarked object encountered %#" Px "\n",
addr);
41 allocated_set_->
Add(obj);
47 for (
ObjectPtr* ptr = from; ptr <= to; ptr++) {
49 if (obj->IsHeapObject()) {
50 if (!allocated_set_->
Contains(obj)) {
51 FATAL(
"%s: Invalid pointer: *0x%" Px " = 0x%" Px "\n", msg_,
52 reinterpret_cast<uword>(ptr),
static_cast<uword>(obj));
58#if defined(DART_COMPRESSED_POINTERS)
64 if (obj->IsHeapObject()) {
65 if (!allocated_set_->
Contains(obj)) {
66 FATAL(
"%s: Invalid pointer: *0x%" Px " = 0x%" Px "\n", msg_,
67 reinterpret_cast<uword>(ptr),
static_cast<uword>(obj));
88 stack_zone.
GetZone(), mark_expectation);
void IterateObjectPointers(ObjectPointerVisitor *visitor, ValidationPolicy validate_frames)
ObjectSet * CreateAllocatedObjectSet(Zone *zone, MarkExpectation mark_expectation)
void VisitWeakPersistentHandles(HandleVisitor *visitor)
IsolateGroup * isolate_group() const
void VisitCompressedPointers(uword heap_base, CompressedObjectPtr *first, CompressedObjectPtr *last)
void VisitPointer(ObjectPtr *p)
void Validate(IsolateGroup *isolate_group) const
bool IsFreeListElement() const
ObjectPtr Decompress(uword heap_base) const
UntaggedObject * untag() const
bool IsForwardingCorpse() const
void Add(ObjectPtr raw_obj)
bool Contains(ObjectPtr raw_obj) const
static Thread * Current()
IsolateGroup * isolate_group() const
static bool IsMarked(uword tags)
static uword ToAddr(const UntaggedObject *raw_obj)
void VisitObject(ObjectPtr obj) override
void VisitPointers(ObjectPtr *first, ObjectPtr *last) override
static void VerifyPointers(const char *msg, MarkExpectation mark_expectation=kForbidMarked)
void VisitHandle(uword addr) override