Flutter Engine
The Flutter Engine
Public Member Functions | Protected Types | Protected Member Functions | Protected Attributes | List of all members
dart::BasePageIterator Class Reference
Inheritance diagram for dart::BasePageIterator:
dart::ValueObject dart::ExclusivePageIterator dart::UnsafeExclusivePageIterator

Public Member Functions

 BasePageIterator (const PageSpace *space)
 
Pagepage () const
 
bool Done () const
 
void Advance ()
 

Protected Types

enum  List { kRegular , kExecutable , kLarge , kImage }
 

Protected Member Functions

void Initialize ()
 

Protected Attributes

const PageSpacespace_ = nullptr
 
List list_
 
Pagepage_ = nullptr
 

Detailed Description

Definition at line 474 of file pages.cc.

Member Enumeration Documentation

◆ List

Enumerator
kRegular 
kExecutable 
kLarge 
kImage 

Definition at line 501 of file pages.cc.

Constructor & Destructor Documentation

◆ BasePageIterator()

dart::BasePageIterator::BasePageIterator ( const PageSpace space)
inlineexplicit

Definition at line 476 of file pages.cc.

476: space_(space) {}
const PageSpace * space_
Definition: pages.cc:520

Member Function Documentation

◆ Advance()

void dart::BasePageIterator::Advance ( )
inline

Definition at line 482 of file pages.cc.

482 {
483 ASSERT(!Done());
484 page_ = page_->next();
485 if ((page_ == nullptr) && (list_ == kRegular)) {
487 page_ = space_->exec_pages_;
488 }
489 if ((page_ == nullptr) && (list_ == kExecutable)) {
490 list_ = kLarge;
491 page_ = space_->large_pages_;
492 }
493 if ((page_ == nullptr) && (list_ == kLarge)) {
494 list_ = kImage;
495 page_ = space_->image_pages_;
496 }
497 ASSERT((page_ != nullptr) || (list_ == kImage));
498 }
bool Done() const
Definition: pages.cc:480
Page * next() const
Definition: page.h:102
#define ASSERT(E)

◆ Done()

bool dart::BasePageIterator::Done ( ) const
inline

Definition at line 480 of file pages.cc.

480{ return page_ == nullptr; }

◆ Initialize()

void dart::BasePageIterator::Initialize ( )
inlineprotected

Definition at line 503 of file pages.cc.

503 {
504 list_ = kRegular;
505 page_ = space_->pages_;
506 if (page_ == nullptr) {
508 page_ = space_->exec_pages_;
509 if (page_ == nullptr) {
510 list_ = kLarge;
511 page_ = space_->large_pages_;
512 if (page_ == nullptr) {
513 list_ = kImage;
514 page_ = space_->image_pages_;
515 }
516 }
517 }
518 }

◆ page()

Page * dart::BasePageIterator::page ( ) const
inline

Definition at line 478 of file pages.cc.

478{ return page_; }

Member Data Documentation

◆ list_

List dart::BasePageIterator::list_
protected

Definition at line 521 of file pages.cc.

◆ page_

Page* dart::BasePageIterator::page_ = nullptr
protected

Definition at line 522 of file pages.cc.

◆ space_

const PageSpace* dart::BasePageIterator::space_ = nullptr
protected

Definition at line 520 of file pages.cc.


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