Flutter Engine
The Flutter Engine
Public Member Functions | Protected Member Functions | Friends | List of all members
dart::EntryFrame Class Reference

#include <stack_frame.h>

Inheritance diagram for dart::EntryFrame:
dart::StackFrame dart::ValueObject

Public Member Functions

bool IsValid () const
 
bool IsDartFrame (bool validate=true) const
 
bool IsStubFrame () const
 
bool IsEntryFrame () const
 
virtual void VisitObjectPointers (ObjectPointerVisitor *visitor)
 
- Public Member Functions inherited from dart::StackFrame
virtual ~StackFrame ()
 
uword sp () const
 
uword fp () const
 
uword pc () const
 
bool IsMarkedForLazyDeopt () const
 
void MarkForLazyDeopt ()
 
void UnmarkForLazyDeopt ()
 
void set_pc (uword value)
 
void set_pc_marker (CodePtr code)
 
virtual void VisitObjectPointers (ObjectPointerVisitor *visitor)
 
const char * ToCString () const
 
virtual bool IsValid () const
 
bool IsBareInstructionsDartFrame () const
 
bool IsBareInstructionsStubFrame () const
 
virtual bool IsDartFrame (bool validate=true) const
 
virtual bool IsStubFrame () const
 
virtual bool IsEntryFrame () const
 
virtual bool IsExitFrame () const
 
FunctionPtr LookupDartFunction () const
 
CodePtr LookupDartCode () const
 
bool FindExceptionHandler (Thread *thread, uword *handler_pc, bool *needs_stacktrace, bool *is_catch_all, bool *is_optimized) const
 
TokenPosition GetTokenPos () const
 
uword GetCallerSp () const
 
- Public Member Functions inherited from dart::ValueObject
 ValueObject ()
 
 ~ValueObject ()
 

Protected Member Functions

virtual const char * GetName () const
 
- Protected Member Functions inherited from dart::StackFrame
 StackFrame (Thread *thread)
 
virtual const char * GetName () const
 
Isolateisolate () const
 
IsolateGroupisolate_group () const
 
Threadthread () const
 

Friends

class StackFrameIterator
 

Additional Inherited Members

- Static Public Member Functions inherited from dart::StackFrame
static int SavedCallerPpSlotFromFp ()
 
static void DumpCurrentTrace ()
 

Detailed Description

Definition at line 193 of file stack_frame.h.

Member Function Documentation

◆ GetName()

virtual const char * dart::EntryFrame::GetName ( ) const
inlineprotectedvirtual

Reimplemented from dart::StackFrame.

Definition at line 204 of file stack_frame.h.

204{ return "entry"; }

◆ IsDartFrame()

bool dart::EntryFrame::IsDartFrame ( bool  validate = true) const
inlinevirtual

Reimplemented from dart::StackFrame.

Definition at line 196 of file stack_frame.h.

196{ return false; }

◆ IsEntryFrame()

bool dart::EntryFrame::IsEntryFrame ( ) const
inlinevirtual

Reimplemented from dart::StackFrame.

Definition at line 198 of file stack_frame.h.

198{ return true; }

◆ IsStubFrame()

bool dart::EntryFrame::IsStubFrame ( ) const
inlinevirtual

Reimplemented from dart::StackFrame.

Definition at line 197 of file stack_frame.h.

197{ return false; }

◆ IsValid()

bool dart::EntryFrame::IsValid ( ) const
inlinevirtual

Reimplemented from dart::StackFrame.

Definition at line 195 of file stack_frame.h.

195{ return StubCode::InInvocationStub(pc()); }
uword pc() const
Definition: stack_frame.h:43
static bool InInvocationStub(uword pc)
Definition: stub_code.cc:132

◆ VisitObjectPointers()

void dart::EntryFrame::VisitObjectPointers ( ObjectPointerVisitor visitor)
virtual

Reimplemented from dart::StackFrame.

Definition at line 196 of file stack_frame.cc.

196 {
197 ASSERT(visitor != nullptr);
198 // Visit objects between SP and (FP - callee_save_area).
199 ObjectPtr* first = reinterpret_cast<ObjectPtr*>(sp());
200 ObjectPtr* last =
201 reinterpret_cast<ObjectPtr*>(fp()) + kExitLinkSlotFromEntryFp - 1;
202 // There may not be any pointer to visit; in this case, first > last.
203 visitor->VisitPointers(first, last);
204}
uword fp() const
Definition: stack_frame.h:42
uword sp() const
Definition: stack_frame.h:41
#define ASSERT(E)
static constexpr int kExitLinkSlotFromEntryFp

Friends And Related Function Documentation

◆ StackFrameIterator

friend class StackFrameIterator
friend

Definition at line 209 of file stack_frame.h.


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