Flutter Engine
The Flutter Engine
Public Member Functions | List of all members
dart::CollectStoreBufferEvacuateVisitor Class Reference
Inheritance diagram for dart::CollectStoreBufferEvacuateVisitor:
dart::ObjectPointerVisitor

Public Member Functions

 CollectStoreBufferEvacuateVisitor (ObjectSet *in_store_buffer, const char *msg)
 
void VisitPointers (ObjectPtr *from, ObjectPtr *to) override
 
- Public Member Functions inherited from dart::ObjectPointerVisitor
 ObjectPointerVisitor (IsolateGroup *isolate_group)
 
virtual ~ObjectPointerVisitor ()
 
IsolateGroupisolate_group () const
 
virtual void VisitTypedDataViewPointers (TypedDataViewPtr view, CompressedObjectPtr *first, CompressedObjectPtr *last)
 
virtual void VisitPointers (ObjectPtr *first, ObjectPtr *last)=0
 
void VisitCompressedPointers (uword heap_base, CompressedObjectPtr *first, CompressedObjectPtr *last)
 
void VisitPointers (ObjectPtr *p, intptr_t len)
 
void VisitPointer (ObjectPtr *p)
 
const char * gc_root_type () const
 
void set_gc_root_type (const char *gc_root_type)
 
void clear_gc_root_type ()
 
virtual bool visit_weak_persistent_handles () const
 
virtual bool trace_values_through_fields () const
 
const ClassTableclass_table () const
 
virtual bool CanVisitSuspendStatePointers (SuspendStatePtr suspend_state)
 

Detailed Description

Definition at line 1177 of file pages.cc.

Constructor & Destructor Documentation

◆ CollectStoreBufferEvacuateVisitor()

dart::CollectStoreBufferEvacuateVisitor::CollectStoreBufferEvacuateVisitor ( ObjectSet in_store_buffer,
const char *  msg 
)
inline

Definition at line 1179 of file pages.cc.

1181 in_store_buffer_(in_store_buffer),
1182 msg_(msg) {}
static IsolateGroup * Current()
Definition: isolate.h:539
ObjectPointerVisitor(IsolateGroup *isolate_group)
Definition: visitor.cc:11

Member Function Documentation

◆ VisitPointers()

void dart::CollectStoreBufferEvacuateVisitor::VisitPointers ( ObjectPtr from,
ObjectPtr to 
)
inlineoverridevirtual

Implements dart::ObjectPointerVisitor.

Definition at line 1184 of file pages.cc.

1184 {
1185 for (ObjectPtr* ptr = from; ptr <= to; ptr++) {
1186 ObjectPtr obj = *ptr;
1187 RELEASE_ASSERT_WITH_MSG(obj->untag()->IsRemembered(), msg_);
1188 RELEASE_ASSERT_WITH_MSG(obj->IsOldObject(), msg_);
1189
1190 RELEASE_ASSERT_WITH_MSG(!obj->untag()->IsCardRemembered(), msg_);
1191 if (obj.GetClassId() == kArrayCid) {
1192 const uword length =
1193 Smi::Value(static_cast<UntaggedArray*>(obj.untag())->length());
1195 msg_);
1196 }
1197 in_store_buffer_->Add(obj);
1198 }
1199 }
#define RELEASE_ASSERT_WITH_MSG(cond, msg)
Definition: assert.h:332
static constexpr bool UseCardMarkingForAllocation(const intptr_t array_length)
Definition: object.h:10818
void Add(ObjectPtr raw_obj)
Definition: object_set.h:75
intptr_t Value() const
Definition: object.h:9990
size_t length
uintptr_t uword
Definition: globals.h:501

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