Flutter Engine
The Flutter Engine
Loading...
Searching...
No Matches
Public Member Functions | List of all members
dart::BackgroundCompilationQueue Class Reference

Public Member Functions

 BackgroundCompilationQueue ()
 
virtual ~BackgroundCompilationQueue ()
 
void VisitObjectPointers (ObjectPointerVisitor *visitor)
 
bool IsEmpty () const
 
void Add (QueueElement *value)
 
QueueElementPeek () const
 
FunctionPtr PeekFunction () const
 
QueueElementRemove ()
 
bool ContainsObj (const Object &obj) const
 
void Clear ()
 

Detailed Description

Definition at line 1022 of file compiler.cc.

Constructor & Destructor Documentation

◆ BackgroundCompilationQueue()

dart::BackgroundCompilationQueue::BackgroundCompilationQueue ( )
inline

Definition at line 1024 of file compiler.cc.

1024: first_(nullptr), last_(nullptr) {}

◆ ~BackgroundCompilationQueue()

virtual dart::BackgroundCompilationQueue::~BackgroundCompilationQueue ( )
inlinevirtual

Definition at line 1025 of file compiler.cc.

Member Function Documentation

◆ Add()

void dart::BackgroundCompilationQueue::Add ( QueueElement value)
inline

Definition at line 1038 of file compiler.cc.

1038 {
1039 ASSERT(value != nullptr);
1040 ASSERT(value->next() == nullptr);
1041 if (first_ == nullptr) {
1042 first_ = value;
1043 ASSERT(last_ == nullptr);
1044 } else {
1045 ASSERT(last_ != nullptr);
1046 last_->set_next(value);
1047 }
1048 last_ = value;
1049 ASSERT(first_ != nullptr && last_ != nullptr);
1050 }
void set_next(QueueElement *elem)
Definition compiler.cc:1005
#define ASSERT(E)
uint8_t value

◆ Clear()

void dart::BackgroundCompilationQueue::Clear ( )
inline

Definition at line 1084 of file compiler.cc.

1084 {
1085 while (!IsEmpty()) {
1086 QueueElement* e = Remove();
1087 delete e;
1088 }
1089 ASSERT((first_ == nullptr) && (last_ == nullptr));
1090 }

◆ ContainsObj()

bool dart::BackgroundCompilationQueue::ContainsObj ( const Object obj) const
inline

Definition at line 1073 of file compiler.cc.

1073 {
1074 QueueElement* p = first_;
1075 while (p != nullptr) {
1076 if (p->function() == obj.ptr()) {
1077 return true;
1078 }
1079 p = p->next();
1080 }
1081 return false;
1082 }

◆ IsEmpty()

bool dart::BackgroundCompilationQueue::IsEmpty ( ) const
inline

Definition at line 1036 of file compiler.cc.

1036{ return first_ == nullptr; }

◆ Peek()

QueueElement * dart::BackgroundCompilationQueue::Peek ( ) const
inline

Definition at line 1052 of file compiler.cc.

1052{ return first_; }

◆ PeekFunction()

FunctionPtr dart::BackgroundCompilationQueue::PeekFunction ( ) const
inline

Definition at line 1054 of file compiler.cc.

1054 {
1055 QueueElement* e = Peek();
1056 if (e == nullptr) {
1057 return Function::null();
1058 } else {
1059 return e->Function();
1060 }
1061 }
QueueElement * Peek() const
Definition compiler.cc:1052
static ObjectPtr null()
Definition object.h:433

◆ Remove()

QueueElement * dart::BackgroundCompilationQueue::Remove ( )
inline

Definition at line 1063 of file compiler.cc.

1063 {
1064 ASSERT(first_ != nullptr);
1065 QueueElement* result = first_;
1066 first_ = first_->next();
1067 if (first_ == nullptr) {
1068 last_ = nullptr;
1069 }
1070 return result;
1071 }
QueueElement * next() const
Definition compiler.cc:1006
GAsyncResult * result

◆ VisitObjectPointers()

void dart::BackgroundCompilationQueue::VisitObjectPointers ( ObjectPointerVisitor visitor)
inline

Definition at line 1027 of file compiler.cc.

1027 {
1028 ASSERT(visitor != nullptr);
1029 QueueElement* p = first_;
1030 while (p != nullptr) {
1031 visitor->VisitPointer(p->function_untag());
1032 p = p->next();
1033 }
1034 }

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