![]() |
Flutter Engine
The Flutter Engine
|
#include <object.h>
Public Types | |
enum | DeoptReasonId |
enum | DeoptFlags { kHoisted = 1 << 0 , kGeneralized = 1 << 1 } |
enum | RebindRule { kNumRebindRules } |
enum | { kCachedICDataZeroArgTestedWithoutExactnessTrackingIdx = 0 , kCachedICDataMaxArgsTestedWithoutExactnessTracking = 2 , kCachedICDataOneArgWithExactnessTrackingIdx , kCachedICDataArrayCount = kCachedICDataOneArgWithExactnessTrackingIdx + 1 } |
![]() | |
enum | NameVisibility { kInternalName = 0 , kScrubbedName , kUserVisibleName } |
enum class | NameDisambiguation { kYes , kNo } |
using | UntaggedObjectType = UntaggedObject |
using | ObjectPtrType = ObjectPtr |
Public Member Functions | |
FunctionPtr | Owner () const |
ICDataPtr | Original () const |
void | SetOriginal (const ICData &value) const |
bool | IsOriginal () const |
intptr_t | NumArgsTested () const |
intptr_t | deopt_id () const |
bool | IsImmutable () const |
AbstractTypePtr | receivers_static_type () const |
bool | is_tracking_exactness () const |
bool | HasDeoptReasons () const |
uint32_t | DeoptReasons () const |
void | SetDeoptReasons (uint32_t reasons) const |
bool | HasDeoptReason (ICData::DeoptReasonId reason) const |
void | AddDeoptReason (ICData::DeoptReasonId reason) const |
RebindRule | rebind_rule () const |
void | set_is_megamorphic (bool value) const |
intptr_t | Length () const |
intptr_t | NumberOfChecks () const |
intptr_t | NumberOfUsedChecks () const |
bool | NumberOfChecksIs (intptr_t n) const |
bool | IsValidEntryIndex (intptr_t index) const |
void | Clear (const CallSiteResetter &proof_of_reload) const |
void | TruncateTo (intptr_t num_checks, const CallSiteResetter &proof_of_reload) const |
void | ClearCountAt (intptr_t index, const CallSiteResetter &proof_of_reload) const |
void | ClearAndSetStaticTarget (const Function &func, const CallSiteResetter &proof_of_reload) const |
void | DebugDump () const |
void | EnsureHasCheck (const GrowableArray< intptr_t > &class_ids, const Function &target, intptr_t count=1) const |
void | AddCheck (const GrowableArray< intptr_t > &class_ids, const Function &target, intptr_t count=1) const |
StaticTypeExactnessState | GetExactnessAt (intptr_t count) const |
void | EnsureHasReceiverCheck (intptr_t receiver_class_id, const Function &target, intptr_t count=1, StaticTypeExactnessState exactness=StaticTypeExactnessState::NotTracking()) const |
void | AddReceiverCheck (intptr_t receiver_class_id, const Function &target, intptr_t count=1, StaticTypeExactnessState exactness=StaticTypeExactnessState::NotTracking()) const |
void | GetCheckAt (intptr_t index, GrowableArray< intptr_t > *class_ids, Function *target) const |
void | GetClassIdsAt (intptr_t index, GrowableArray< intptr_t > *class_ids) const |
void | GetOneClassCheckAt (intptr_t index, intptr_t *class_id, Function *target) const |
intptr_t | GetCidAt (intptr_t index) const |
intptr_t | GetReceiverClassIdAt (intptr_t index) const |
intptr_t | GetClassIdAt (intptr_t index, intptr_t arg_nr) const |
FunctionPtr | GetTargetAt (intptr_t index) const |
void | IncrementCountAt (intptr_t index, intptr_t value) const |
void | SetCountAt (intptr_t index, intptr_t value) const |
intptr_t | GetCountAt (intptr_t index) const |
intptr_t | AggregateCount () const |
ICDataPtr | AsUnaryClassChecksForArgNr (intptr_t arg_nr) const |
ICDataPtr | AsUnaryClassChecks () const |
ICDataPtr | AsUnaryClassChecksSortedByCount () const |
UnlinkedCallPtr | AsUnlinkedCall () const |
bool | HasReceiverClassId (intptr_t class_id) const |
bool | IsUsedAt (intptr_t i) const |
void | PrintToJSONArray (const JSONArray &jsarray, TokenPosition token_pos) const |
bool | is_static_call () const |
intptr_t | FindCheck (const GrowableArray< intptr_t > &cids) const |
ArrayPtr | entries () const |
bool | receiver_cannot_be_smi () const |
void | set_receiver_cannot_be_smi (bool value) const |
uword | Hash () const |
![]() | |
StringPtr | target_name () const |
ArrayPtr | arguments_descriptor () const |
intptr_t | TypeArgsLen () const |
intptr_t | CountWithTypeArgs () const |
intptr_t | CountWithoutTypeArgs () const |
intptr_t | SizeWithoutTypeArgs () const |
intptr_t | SizeWithTypeArgs () const |
![]() | |
virtual | ~Object () |
ObjectPtr | ptr () const |
void | operator= (ObjectPtr value) |
bool | IsCanonical () const |
void | SetCanonical () const |
void | ClearCanonical () const |
bool | IsImmutable () const |
void | SetImmutable () const |
void | ClearImmutable () const |
intptr_t | GetClassId () const |
ClassPtr | clazz () const |
CLASS_LIST_FOR_HANDLES (DEFINE_CLASS_TESTER) | |
bool | IsNull () const |
virtual const char * | ToCString () const |
void | PrintJSON (JSONStream *stream, bool ref=true) const |
virtual void | PrintJSONImpl (JSONStream *stream, bool ref) const |
void | PrintImplementationFields (JSONStream *stream) const |
virtual void | PrintImplementationFieldsImpl (const JSONArray &jsarr_fields) const |
virtual const char * | JSONType () const |
virtual StringPtr | DictionaryName () const |
bool | IsNew () const |
bool | IsOld () const |
bool | InVMIsolateHeap () const |
void | Print () const |
Static Public Member Functions | |
static const char * | RebindRuleToCString (RebindRule r) |
static bool | ParseRebindRule (const char *str, RebindRule *out) |
static intptr_t | InstanceSize () |
static intptr_t | state_bits_offset () |
static intptr_t | NumArgsTestedShift () |
static intptr_t | NumArgsTestedMask () |
static intptr_t | entries_offset () |
static intptr_t | owner_offset () |
static intptr_t | receivers_static_type_offset () |
static ICDataPtr | New (const Function &owner, const String &target_name, const Array &arguments_descriptor, intptr_t deopt_id, intptr_t num_args_tested, RebindRule rebind_rule, const AbstractType &receiver_type=Object::null_abstract_type()) |
static ICDataPtr | NewWithCheck (const Function &owner, const String &target_name, const Array &arguments_descriptor, intptr_t deopt_id, intptr_t num_args_tested, RebindRule rebind_rule, GrowableArray< intptr_t > *cids, const Function &target, const AbstractType &receiver_type=Object::null_abstract_type()) |
static ICDataPtr | NewForStaticCall (const Function &owner, const Function &target, const Array &arguments_descriptor, intptr_t deopt_id, intptr_t num_args_tested, RebindRule rebind_rule) |
static ICDataPtr | NewFrom (const ICData &from, intptr_t num_args_tested) |
static ICDataPtr | Clone (const ICData &from) |
static ICDataPtr | ICDataOfEntriesArray (const Array &array) |
static intptr_t | TestEntryLengthFor (intptr_t num_args, bool tracking_exactness) |
static intptr_t | CountIndexFor (intptr_t num_args) |
static intptr_t | EntryPointIndexFor (intptr_t num_args) |
static intptr_t | TargetIndexFor (intptr_t num_args) |
static intptr_t | CodeIndexFor (intptr_t num_args) |
static intptr_t | ExactnessIndexFor (intptr_t num_args) |
static void | Init () |
static void | Cleanup () |
![]() | |
static intptr_t | target_name_offset () |
static intptr_t | arguments_descriptor_offset () |
![]() | |
static ObjectPtr | RawCast (ObjectPtr obj) |
static constexpr bool | ContainsCompressedPointers () |
static intptr_t | tags_offset () |
static Object & | Handle () |
static Object & | Handle (Zone *zone) |
static Object & | Handle (ObjectPtr ptr) |
static Object & | Handle (Zone *zone, ObjectPtr ptr) |
static Object & | ZoneHandle () |
static Object & | ZoneHandle (Zone *zone) |
static Object & | ZoneHandle (ObjectPtr ptr) |
static Object & | ZoneHandle (Zone *zone, ObjectPtr ptr) |
static Object * | ReadOnlyHandle () |
static ObjectPtr | null () |
static void | set_vm_isolate_snapshot_object_table (const Array &table) |
static ClassPtr | class_class () |
static ClassPtr | dynamic_class () |
static ClassPtr | void_class () |
static ClassPtr | type_parameters_class () |
static ClassPtr | type_arguments_class () |
static ClassPtr | patch_class_class () |
static ClassPtr | function_class () |
static ClassPtr | closure_data_class () |
static ClassPtr | ffi_trampoline_data_class () |
static ClassPtr | field_class () |
static ClassPtr | script_class () |
static ClassPtr | library_class () |
static ClassPtr | namespace_class () |
static ClassPtr | kernel_program_info_class () |
static ClassPtr | code_class () |
static ClassPtr | instructions_class () |
static ClassPtr | instructions_section_class () |
static ClassPtr | instructions_table_class () |
static ClassPtr | object_pool_class () |
static ClassPtr | pc_descriptors_class () |
static ClassPtr | code_source_map_class () |
static ClassPtr | compressed_stackmaps_class () |
static ClassPtr | var_descriptors_class () |
static ClassPtr | exception_handlers_class () |
static ClassPtr | context_class () |
static ClassPtr | context_scope_class () |
static ClassPtr | sentinel_class () |
static ClassPtr | api_error_class () |
static ClassPtr | language_error_class () |
static ClassPtr | unhandled_exception_class () |
static ClassPtr | unwind_error_class () |
static ClassPtr | singletargetcache_class () |
static ClassPtr | unlinkedcall_class () |
static ClassPtr | monomorphicsmiablecall_class () |
static ClassPtr | icdata_class () |
static ClassPtr | megamorphic_cache_class () |
static ClassPtr | subtypetestcache_class () |
static ClassPtr | loadingunit_class () |
static ClassPtr | weak_serialization_reference_class () |
static ClassPtr | weak_array_class () |
static void | InitNullAndBool (IsolateGroup *isolate_group) |
static void | Init (IsolateGroup *isolate_group) |
static void | InitVtables () |
static void | FinishInit (IsolateGroup *isolate_group) |
static void | FinalizeVMIsolate (IsolateGroup *isolate_group) |
static void | FinalizeReadOnlyObject (ObjectPtr object) |
static void | Cleanup () |
static ErrorPtr | Init (IsolateGroup *isolate_group, const uint8_t *kernel_buffer, intptr_t kernel_buffer_size) |
static void | MakeUnusedSpaceTraversable (const Object &obj, intptr_t original_size, intptr_t used_size) |
static intptr_t | InstanceSize () |
template<class FakeObject > | |
static void | VerifyBuiltinVtable (intptr_t cid) |
static void | VerifyBuiltinVtables () |
static bool | ShouldHaveImmutabilityBitSet (classid_t class_id) |
Static Public Attributes | |
static constexpr intptr_t | kLastRecordedDeoptReason = kDeoptUnknown - 1 |
![]() | |
static constexpr intptr_t | kHashBits = 30 |
static const ClassId | kClassId = kObjectCid |
Friends | |
class | CallSiteResetter |
class | CallTargets |
class | Class |
class | VMDeserializationRoots |
class | ICDataTestTask |
class | VMSerializationRoots |
Additional Inherited Members | |
![]() | |
Object () | |
uword | raw_value () const |
void | setPtr (ObjectPtr value, intptr_t default_cid) |
void | CheckHandle () const |
cpp_vtable | vtable () const |
void | set_vtable (cpp_vtable value) |
bool | Contains (uword addr) const |
template<typename type , std::memory_order order = std::memory_order_relaxed> | |
type | LoadPointer (type const *addr) const |
template<typename type , std::memory_order order = std::memory_order_relaxed> | |
void | StorePointer (type const *addr, type value) const |
template<typename type , typename compressed_type , std::memory_order order = std::memory_order_relaxed> | |
void | StoreCompressedPointer (compressed_type const *addr, type value) const |
template<typename type > | |
void | StorePointerUnaligned (type const *addr, type value, Thread *thread) const |
void | StoreSmi (SmiPtr const *addr, SmiPtr value) const |
template<typename FieldType > | |
void | StoreSimd128 (const FieldType *addr, simd128_value_t value) const |
template<typename FieldType > | |
FieldType | LoadNonPointer (const FieldType *addr) const |
template<typename FieldType , std::memory_order order> | |
FieldType | LoadNonPointer (const FieldType *addr) const |
template<typename FieldType , typename ValueType > | |
void | StoreNonPointer (const FieldType *addr, ValueType value) const |
template<typename FieldType , typename ValueType , std::memory_order order> | |
void | StoreNonPointer (const FieldType *addr, ValueType value) const |
template<typename FieldType > | |
FieldType * | UnsafeMutableNonPointer (const FieldType *addr) const |
CLASS_LIST (STORE_NON_POINTER_ILLEGAL_TYPE) | |
void | UnimplementedMethod () const |
void | AddCommonObjectProperties (JSONObject *jsobj, const char *protocol_type, bool ref) const |
![]() | |
static DART_NOINLINE Object & | HandleImpl (Zone *zone, ObjectPtr ptr, intptr_t default_cid) |
static DART_NOINLINE Object & | ZoneHandleImpl (Zone *zone, ObjectPtr ptr, intptr_t default_cid) |
static DART_NOINLINE Object * | ReadOnlyHandleImpl (intptr_t cid) |
static ObjectPtr | Allocate (intptr_t cls_id, intptr_t size, Heap::Space space, bool compressed, uword ptr_field_start_offset, uword ptr_field_end_offset) |
template<typename T > | |
static DART_FORCE_INLINE T::ObjectPtrType | Allocate (Heap::Space space) |
template<typename T > | |
static DART_FORCE_INLINE T::ObjectPtrType | Allocate (Heap::Space space, intptr_t elements) |
template<typename T > | |
static DART_FORCE_INLINE T::ObjectPtrType | AllocateVariant (intptr_t class_id, Heap::Space space) |
template<typename T > | |
static DART_FORCE_INLINE T::ObjectPtrType | AllocateVariant (intptr_t class_id, Heap::Space space, intptr_t elements) |
static constexpr intptr_t | RoundedAllocationSize (intptr_t size) |
static ObjectPtr | Clone (const Object &orig, Heap::Space space, bool load_with_relaxed_atomics=false) |
template<typename T > | |
static DART_FORCE_INLINE uword | from_offset () |
template<typename T > | |
static DART_FORCE_INLINE uword | to_offset (intptr_t length=0) |
![]() | |
ObjectPtr | ptr_ |
anonymous enum |
Enumerator | |
---|---|
kCachedICDataZeroArgTestedWithoutExactnessTrackingIdx | |
kCachedICDataMaxArgsTestedWithoutExactnessTracking | |
kCachedICDataOneArgWithExactnessTrackingIdx | |
kCachedICDataArrayCount |
Definition at line 2770 of file object.h.
Enumerator | |
---|---|
kHoisted | |
kGeneralized |
Definition at line 2520 of file object.h.
Enumerator | |
---|---|
kNumRebindRules |
Definition at line 2545 of file object.h.
void dart::ICData::AddCheck | ( | const GrowableArray< intptr_t > & | class_ids, |
const Function & | target, | ||
intptr_t | count = 1 |
||
) | const |
void dart::ICData::AddDeoptReason | ( | ICData::DeoptReasonId | reason | ) | const |
Definition at line 16518 of file object.cc.
void dart::ICData::AddReceiverCheck | ( | intptr_t | receiver_class_id, |
const Function & | target, | ||
intptr_t | count = 1 , |
||
StaticTypeExactnessState | exactness = StaticTypeExactnessState::NotTracking() |
||
) | const |
intptr_t dart::ICData::AggregateCount | ( | ) | const |
|
inline |
Definition at line 2691 of file object.h.
ICDataPtr dart::ICData::AsUnaryClassChecksForArgNr | ( | intptr_t | arg_nr | ) | const |
Definition at line 17095 of file object.cc.
ICDataPtr dart::ICData::AsUnaryClassChecksSortedByCount | ( | ) | const |
Definition at line 17154 of file object.cc.
UnlinkedCallPtr dart::ICData::AsUnlinkedCall | ( | ) | const |
Definition at line 17206 of file object.cc.
|
static |
|
inline |
Definition at line 2603 of file object.h.
void dart::ICData::ClearAndSetStaticTarget | ( | const Function & | func, |
const CallSiteResetter & | proof_of_reload | ||
) | const |
Definition at line 16730 of file object.cc.
void dart::ICData::ClearCountAt | ( | intptr_t | index, |
const CallSiteResetter & | proof_of_reload | ||
) | const |
Definition at line 16721 of file object.cc.
|
static |
Definition at line 17439 of file object.cc.
|
inlinestatic |
|
inlinestatic |
void dart::ICData::DebugDump | ( | ) | const |
Definition at line 16857 of file object.cc.
|
inline |
Definition at line 2468 of file object.h.
uint32_t dart::ICData::DeoptReasons | ( | ) | const |
void dart::ICData::EnsureHasCheck | ( | const GrowableArray< intptr_t > & | class_ids, |
const Function & | target, | ||
intptr_t | count = 1 |
||
) | const |
Definition at line 16775 of file object.cc.
void dart::ICData::EnsureHasReceiverCheck | ( | intptr_t | receiver_class_id, |
const Function & | target, | ||
intptr_t | count = 1 , |
||
StaticTypeExactnessState | exactness = StaticTypeExactnessState::NotTracking() |
||
) | const |
Definition at line 16876 of file object.cc.
|
inline |
|
inlinestatic |
|
inlinestatic |
|
inlinestatic |
intptr_t dart::ICData::FindCheck | ( | const GrowableArray< intptr_t > & | cids | ) | const |
void dart::ICData::GetCheckAt | ( | intptr_t | index, |
GrowableArray< intptr_t > * | class_ids, | ||
Function * | target | ||
) | const |
Definition at line 16955 of file object.cc.
intptr_t dart::ICData::GetCidAt | ( | intptr_t | index | ) | const |
Definition at line 17004 of file object.cc.
intptr_t dart::ICData::GetClassIdAt | ( | intptr_t | index, |
intptr_t | arg_nr | ||
) | const |
Definition at line 17014 of file object.cc.
void dart::ICData::GetClassIdsAt | ( | intptr_t | index, |
GrowableArray< intptr_t > * | class_ids | ||
) | const |
Definition at line 16973 of file object.cc.
intptr_t dart::ICData::GetCountAt | ( | intptr_t | index | ) | const |
Definition at line 17063 of file object.cc.
StaticTypeExactnessState dart::ICData::GetExactnessAt | ( | intptr_t | count | ) | const |
Definition at line 16941 of file object.cc.
void dart::ICData::GetOneClassCheckAt | ( | intptr_t | index, |
intptr_t * | class_id, | ||
Function * | target | ||
) | const |
Definition at line 16989 of file object.cc.
intptr_t dart::ICData::GetReceiverClassIdAt | ( | intptr_t | index | ) | const |
FunctionPtr dart::ICData::GetTargetAt | ( | intptr_t | index | ) | const |
Definition at line 17029 of file object.cc.
bool dart::ICData::HasDeoptReason | ( | ICData::DeoptReasonId | reason | ) | const |
uword dart::ICData::Hash | ( | ) | const |
bool dart::ICData::HasReceiverClassId | ( | intptr_t | class_id | ) | const |
Definition at line 17217 of file object.cc.
|
static |
Definition at line 17484 of file object.cc.
void dart::ICData::IncrementCountAt | ( | intptr_t | index, |
intptr_t | value | ||
) | const |
|
static |
Definition at line 17248 of file object.cc.
|
inlinestatic |
Definition at line 2576 of file object.h.
bool dart::ICData::is_static_call | ( | ) | const |
|
inline |
bool dart::ICData::IsImmutable | ( | ) | const |
bool dart::ICData::IsUsedAt | ( | intptr_t | i | ) | const |
|
inline |
|
static |
Definition at line 17342 of file object.cc.
|
static |
Definition at line 17401 of file object.cc.
|
static |
Definition at line 17424 of file object.cc.
|
static |
Definition at line 17360 of file object.cc.
intptr_t dart::ICData::NumArgsTested | ( | ) | const |
|
inlinestatic |
|
inlinestatic |
intptr_t dart::ICData::NumberOfChecks | ( | ) | const |
bool dart::ICData::NumberOfChecksIs | ( | intptr_t | n | ) | const |
intptr_t dart::ICData::NumberOfUsedChecks | ( | ) | const |
ICDataPtr dart::ICData::Original | ( | ) | const |
FunctionPtr dart::ICData::Owner | ( | ) | const |
|
inlinestatic |
|
static |
void dart::ICData::PrintToJSONArray | ( | const JSONArray & | jsarray, |
TokenPosition | token_pos | ||
) | const |
Definition at line 993 of file object_service.cc.
ICData::RebindRule dart::ICData::rebind_rule | ( | ) | const |
|
static |
|
inline |
|
inline |
|
inlinestatic |
|
inline |
|
inline |
void dart::ICData::SetCountAt | ( | intptr_t | index, |
intptr_t | value | ||
) | const |
Definition at line 17050 of file object.cc.
void dart::ICData::SetDeoptReasons | ( | uint32_t | reasons | ) | const |
void dart::ICData::SetOriginal | ( | const ICData & | value | ) | const |
|
inlinestatic |
|
inlinestatic |
|
static |
void dart::ICData::TruncateTo | ( | intptr_t | num_checks, |
const CallSiteResetter & | proof_of_reload | ||
) | const |
Definition at line 16690 of file object.cc.
|
friend |
|
friend |
|
friend |
|
friend |
|
friend |
|
staticconstexpr |