#include <dart_api_state.h>
Definition at line 190 of file dart_api_state.h.
◆ ApiFinalizableHandle()
Definition at line 210 of file dart_api_state.h.
210 {
212 }
struct _Dart_FinalizableHandle * Dart_FinalizableHandle
◆ ApiWeakPersistentHandle()
Definition at line 207 of file dart_api_state.h.
207 {
209 }
struct _Dart_WeakPersistentHandle * Dart_WeakPersistentHandle
◆ auto_delete()
bool dart::FinalizablePersistentHandle::auto_delete |
( |
| ) |
const |
|
inline |
◆ callback()
◆ Cast() [1/2]
Definition at line 709 of file dart_api_impl.cc.
710 {
711#if defined(DEBUG)
714#endif
715 return reinterpret_cast<FinalizablePersistentHandle*>(handle);
716}
static IsolateGroup * Current()
ApiState * api_state() const
◆ Cast() [2/2]
Definition at line 701 of file dart_api_impl.cc.
702 {
703#if defined(DEBUG)
705 ASSERT(
state->IsValidWeakPersistentHandle(handle));
706#endif
707 return reinterpret_cast<FinalizablePersistentHandle*>(handle);
708}
◆ EnsureFreedExternal()
void dart::FinalizablePersistentHandle::EnsureFreedExternal |
( |
IsolateGroup * |
isolate_group | ) |
|
|
inline |
Definition at line 255 of file dart_api_state.h.
255 {
256 isolate_group->heap()->FreedExternal(
external_size(), SpaceForExternal());
257 set_external_size(0);
258 }
intptr_t external_size() const
◆ external_size()
intptr_t dart::FinalizablePersistentHandle::external_size |
( |
| ) |
const |
|
inline |
Definition at line 220 of file dart_api_state.h.
220 {
222 }
static constexpr intptr_t decode(uword value)
constexpr intptr_t kWordSize
◆ IsFinalizedNotFreed()
bool dart::FinalizablePersistentHandle::IsFinalizedNotFreed |
( |
| ) |
const |
|
inline |
Definition at line 216 of file dart_api_state.h.
216 {
217 return ptr_ ==
static_cast<ObjectPtr
>(
reinterpret_cast<uword>(
this));
218 }
◆ New()
Definition at line 790 of file dart_api_state.h.
796 {
797 ApiState*
state = isolate_group->api_state();
799 FinalizablePersistentHandle* ref =
state->AllocateWeakPersistentHandle();
800 ref->set_ptr(object);
804
806 state->FreeWeakPersistentHandle(ref);
807 return nullptr;
808 }
809 return ref;
810}
Dart_HandleFinalizer callback() const
◆ peer()
void * dart::FinalizablePersistentHandle::peer |
( |
| ) |
const |
|
inline |
◆ ptr()
ObjectPtr dart::FinalizablePersistentHandle::ptr |
( |
| ) |
const |
|
inline |
◆ ptr_addr()
ObjectPtr * dart::FinalizablePersistentHandle::ptr_addr |
( |
| ) |
|
|
inline |
◆ ptr_offset()
static intptr_t dart::FinalizablePersistentHandle::ptr_offset |
( |
| ) |
|
|
inlinestatic |
Definition at line 202 of file dart_api_state.h.
202 {
203 return OFFSET_OF(FinalizablePersistentHandle, ptr_);
204 }
#define OFFSET_OF(type, field)
◆ SetExternalSize()
bool dart::FinalizablePersistentHandle::SetExternalSize |
( |
intptr_t |
size, |
|
|
IsolateGroup * |
isolate_group |
|
) |
| |
|
inline |
Definition at line 224 of file dart_api_state.h.
224 {
225
226
229 return false;
230 }
231 set_external_size(size);
233 SetExternalNewSpaceBit();
234 }
235 return isolate_group->heap()->AllocatedExternal(
external_size(),
236 SpaceForExternal());
237 }
constexpr intptr_t kWordSizeLog2
const intptr_t kMaxAddrSpaceInWords
◆ UpdateRelocated()
void dart::FinalizablePersistentHandle::UpdateRelocated |
( |
IsolateGroup * |
isolate_group | ) |
|
|
inline |
Definition at line 246 of file dart_api_state.h.
246 {
247 if (IsSetNewSpaceBit() && (SpaceForExternal() ==
Heap::kOld)) {
249 ClearExternalNewSpaceBit();
250 }
251 }
◆ UpdateUnreachable()
void dart::FinalizablePersistentHandle::UpdateUnreachable |
( |
IsolateGroup * |
isolate_group | ) |
|
|
inline |
Definition at line 240 of file dart_api_state.h.
240 {
242 Finalize(isolate_group, this);
243 }
void EnsureFreedExternal(IsolateGroup *isolate_group)
◆ FinalizablePersistentHandles
The documentation for this class was generated from the following files: