Flutter Engine
The Flutter Engine
Loading...
Searching...
No Matches
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 468 of file pages.cc.

Member Enumeration Documentation

◆ List

Enumerator
kRegular 
kExecutable 
kLarge 
kImage 

Definition at line 495 of file pages.cc.

Constructor & Destructor Documentation

◆ BasePageIterator()

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

Definition at line 470 of file pages.cc.

470: space_(space) {}
const PageSpace * space_
Definition pages.cc:514

Member Function Documentation

◆ Advance()

void dart::BasePageIterator::Advance ( )
inline

Definition at line 476 of file pages.cc.

476 {
477 ASSERT(!Done());
478 page_ = page_->next();
479 if ((page_ == nullptr) && (list_ == kRegular)) {
481 page_ = space_->exec_pages_;
482 }
483 if ((page_ == nullptr) && (list_ == kExecutable)) {
484 list_ = kLarge;
485 page_ = space_->large_pages_;
486 }
487 if ((page_ == nullptr) && (list_ == kLarge)) {
488 list_ = kImage;
489 page_ = space_->image_pages_;
490 }
491 ASSERT((page_ != nullptr) || (list_ == kImage));
492 }
bool Done() const
Definition pages.cc:474
Page * next() const
Definition page.h:86
#define ASSERT(E)

◆ Done()

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

Definition at line 474 of file pages.cc.

474{ return page_ == nullptr; }

◆ Initialize()

void dart::BasePageIterator::Initialize ( )
inlineprotected

Definition at line 497 of file pages.cc.

497 {
498 list_ = kRegular;
499 page_ = space_->pages_;
500 if (page_ == nullptr) {
502 page_ = space_->exec_pages_;
503 if (page_ == nullptr) {
504 list_ = kLarge;
505 page_ = space_->large_pages_;
506 if (page_ == nullptr) {
507 list_ = kImage;
508 page_ = space_->image_pages_;
509 }
510 }
511 }
512 }

◆ page()

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

Definition at line 472 of file pages.cc.

472{ return page_; }

Member Data Documentation

◆ list_

List dart::BasePageIterator::list_
protected

Definition at line 515 of file pages.cc.

◆ page_

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

Definition at line 516 of file pages.cc.

◆ space_

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

Definition at line 514 of file pages.cc.


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