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

#include <object.h>

Inheritance diagram for dart::ClassDictionaryIterator:
dart::DictionaryIterator dart::ValueObject

Public Types

enum  IterationKind { kIteratePrivate , kNoIteratePrivate }
 

Public Member Functions

 ClassDictionaryIterator (const Library &library, IterationKind kind=kNoIteratePrivate)
 
bool HasNext () const
 
ClassPtr GetNextClass ()
 
- Public Member Functions inherited from dart::DictionaryIterator
 DictionaryIterator (const Library &library)
 
bool HasNext () const
 
ObjectPtr GetNext ()
 
- Public Member Functions inherited from dart::ValueObject
 ValueObject ()
 
 ~ValueObject ()
 

Detailed Description

Definition at line 5036 of file object.h.

Member Enumeration Documentation

◆ IterationKind

Enumerator
kIteratePrivate 
kNoIteratePrivate 

Definition at line 5038 of file object.h.

5038 {
5039 // TODO(hausner): fix call sites that use kIteratePrivate. There is only
5040 // one top-level class per library left, not an array to iterate over.
5043 };

Constructor & Destructor Documentation

◆ ClassDictionaryIterator()

dart::ClassDictionaryIterator::ClassDictionaryIterator ( const Library library,
IterationKind  kind = kNoIteratePrivate 
)

Definition at line 13573 of file object.cc.

13575 : DictionaryIterator(library),
13576 toplevel_class_(Class::Handle((kind == kIteratePrivate)
13577 ? library.toplevel_class()
13578 : Class::null())) {
13579 MoveToNextClass();
13580}
DictionaryIterator(const Library &library)
Definition object.cc:13549
static Object & Handle()
Definition object.h:407

Member Function Documentation

◆ GetNextClass()

ClassPtr dart::ClassDictionaryIterator::GetNextClass ( )

Definition at line 13582 of file object.cc.

13582 {
13583 ASSERT(HasNext());
13584 Class& cls = Class::Handle();
13585 if (next_ix_ < size_) {
13586 int ix = next_ix_++;
13587 cls ^= array_.At(ix);
13588 MoveToNextClass();
13589 return cls.ptr();
13590 }
13591 ASSERT(!toplevel_class_.IsNull());
13592 cls = toplevel_class_.ptr();
13593 toplevel_class_ = Class::null();
13594 return cls.ptr();
13595}
static ObjectPtr null()
Definition object.h:433
ObjectPtr ptr() const
Definition object.h:332
bool IsNull() const
Definition object.h:363
#define ASSERT(E)

◆ HasNext()

bool dart::ClassDictionaryIterator::HasNext ( ) const
inline

Definition at line 5048 of file object.h.

5048 {
5049 return (next_ix_ < size_) || !toplevel_class_.IsNull();
5050 }

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