Flutter Engine
The Flutter Engine
Loading...
Searching...
No Matches
Public Member Functions | List of all members
dart::DartEntryScope Class Reference
Inheritance diagram for dart::DartEntryScope:
dart::TransitionToGenerated dart::TransitionSafepointState dart::ThreadStackResource dart::StackResource

Public Member Functions

NO_SANITIZE_SAFE_STACK DartEntryScope (Thread *thread)
 
 ~DartEntryScope ()
 
- Public Member Functions inherited from dart::TransitionToGenerated
 TransitionToGenerated (Thread *T)
 
 ~TransitionToGenerated ()
 
- Public Member Functions inherited from dart::TransitionSafepointState
 TransitionSafepointState (Thread *T)
 
 ~TransitionSafepointState ()
 
SafepointHandlerhandler () const
 
- Public Member Functions inherited from dart::ThreadStackResource
 ThreadStackResource (Thread *T)
 
 ~ThreadStackResource ()
 
Threadthread () const
 
Isolateisolate () const
 
IsolateGroupisolate_group () const
 
- Public Member Functions inherited from dart::StackResource
 StackResource (ThreadState *thread)
 
virtual ~StackResource ()
 
ThreadStatethread () const
 

Additional Inherited Members

- Static Public Member Functions inherited from dart::StackResource
static void Unwind (ThreadState *thread)
 
static void UnwindAbove (ThreadState *thread, StackResource *new_top)
 

Detailed Description

Definition at line 40 of file dart_entry.cc.

Constructor & Destructor Documentation

◆ DartEntryScope()

NO_SANITIZE_SAFE_STACK dart::DartEntryScope::DartEntryScope ( Thread thread)
inlineexplicit

Definition at line 43 of file dart_entry.cc.

44 // Ensure we do not attempt to long jump across Dart frames.
45 saved_long_jump_base_ = thread->long_jump_base();
46 thread->set_long_jump_base(nullptr);
47
48#if defined(USING_SAFE_STACK)
49 // Remember the safestack pointer at entry so it can be restored in
50 // Exceptions::JumpToFrame when a Dart exception jumps over C++ frames.
51 saved_safestack_limit_ = OSThread::GetCurrentSafestackPointer();
52 thread->set_saved_safestack_limit(saved_safestack_limit_);
53#endif
54 }
void set_long_jump_base(LongJumpScope *value)
LongJumpScope * long_jump_base() const

◆ ~DartEntryScope()

dart::DartEntryScope::~DartEntryScope ( )
inline

Definition at line 56 of file dart_entry.cc.

56 {
57#if defined(USING_SAFE_STACK)
58 thread()->set_saved_safestack_limit(saved_safestack_limit_);
59#endif
60
61 ASSERT(thread()->long_jump_base() == nullptr);
62 thread()->set_long_jump_base(saved_long_jump_base_);
63 }
#define ASSERT(E)

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