Flutter Engine
The Flutter Engine
|
#include <object.h>
Public Member Functions | |
bool | IsFinalized () const |
void | SetIsFinalized () const |
Nullability | nullability () const |
bool | IsNullable () const |
bool | IsNonNullable () const |
bool | IsStrictlyNonNullable () const |
virtual AbstractTypePtr | SetInstantiatedNullability (const TypeParameter &type_param, Heap::Space space) const |
virtual AbstractTypePtr | NormalizeFutureOrType (Heap::Space space) const |
virtual bool | HasTypeClass () const |
virtual classid_t | type_class_id () const |
virtual ClassPtr | type_class () const |
virtual TypeArgumentsPtr | arguments () const |
virtual bool | IsInstantiated (Genericity genericity=kAny, intptr_t num_free_fun_type_params=kAllFree) const |
virtual bool | CanonicalizeEquals (const Instance &other) const |
virtual uint32_t | CanonicalizeHash () const |
virtual bool | Equals (const Instance &other) const |
virtual bool | IsEquivalent (const Instance &other, TypeEquality kind, FunctionTypeMapping *function_type_equivalence=nullptr) const |
virtual AbstractTypePtr | InstantiateFrom (const TypeArguments &instantiator_type_arguments, const TypeArguments &function_type_arguments, intptr_t num_free_fun_type_params, Heap::Space space, FunctionTypeMapping *function_type_mapping=nullptr, intptr_t num_parent_type_args_adjustment=0) const |
virtual AbstractTypePtr | UpdateFunctionTypes (intptr_t num_parent_type_args_adjustment, intptr_t num_free_fun_type_params, Heap::Space space, FunctionTypeMapping *function_type_mapping) const |
virtual InstancePtr | CanonicalizeLocked (Thread *thread) const |
virtual AbstractTypePtr | Canonicalize (Thread *thread) const |
virtual const char * | NullabilitySuffix (NameVisibility name_visibility) const |
StringPtr | Name () const |
const char * | NameCString () const |
StringPtr | UserVisibleName () const |
const char * | UserVisibleNameCString () const |
StringPtr | ScrubbedName () const |
const char * | ScrubbedNameCString () const |
virtual void | PrintName (NameVisibility visibility, BaseTextBuffer *printer) const |
virtual void | EnumerateURIs (URIs *uris) const |
uword | Hash () const |
virtual uword | ComputeHash () const |
StringPtr | ClassName () const |
bool | IsDynamicType () const |
bool | IsVoidType () const |
bool | IsNullType () const |
bool | IsNeverType () const |
bool | IsSentinelType () const |
bool | IsObjectType () const |
bool | IsNullableObjectType () const |
bool | IsTopTypeForSubtyping () const |
bool | IsTopTypeForInstanceOf () const |
bool | IsBoolType () const |
bool | IsIntType () const |
bool | IsIntegerImplementationType () const |
bool | IsDoubleType () const |
bool | IsFloat32x4Type () const |
bool | IsFloat64x2Type () const |
bool | IsInt32x4Type () const |
bool | IsNumberType () const |
bool | IsSmiType () const |
bool | IsMintType () const |
bool | IsStringType () const |
bool | IsDartFunctionType () const |
bool | IsDartClosureType () const |
bool | IsDartRecordType () const |
bool | IsFfiPointerType () const |
bool | IsFutureOrType () const |
AbstractTypePtr | UnwrapFutureOr () const |
bool | IsCatchAllType () const |
bool | IsTypeClassAllowedBySpawnUri () const |
bool | IsSubtypeOf (const AbstractType &other, Heap::Space space, FunctionTypeMapping *function_type_equivalence=nullptr) const |
uword | type_test_stub_entry_point () const |
CodePtr | type_test_stub () const |
void | SetTypeTestingStub (const Code &stub) const |
void | InitializeTypeTestingStubNonAtomic (const Code &stub) const |
void | UpdateTypeTestingStubEntryPoint () const |
Public Member Functions inherited from dart::Instance | |
virtual bool | OperatorEquals (const Instance &other) const |
bool | IsIdenticalTo (const Instance &other) const |
virtual bool | CanonicalizeEquals (const Instance &other) const |
virtual uint32_t | CanonicalizeHash () const |
intptr_t | SizeFromClass () const |
InstancePtr | Canonicalize (Thread *thread) const |
virtual InstancePtr | CanonicalizeLocked (Thread *thread) const |
virtual void | CanonicalizeFieldsLocked (Thread *thread) const |
InstancePtr | CopyShallowToOldSpace (Thread *thread) const |
ObjectPtr | GetField (const Field &field) const |
void | SetField (const Field &field, const Object &value) const |
AbstractTypePtr | GetType (Heap::Space space) const |
virtual TypeArgumentsPtr | GetTypeArguments () const |
virtual void | SetTypeArguments (const TypeArguments &value) const |
bool | IsInstanceOf (const AbstractType &other, const TypeArguments &other_instantiator_type_arguments, const TypeArguments &other_function_type_arguments) const |
bool | IsAssignableTo (const AbstractType &other, const TypeArguments &other_instantiator_type_arguments, const TypeArguments &other_function_type_arguments) const |
bool | IsValidNativeIndex (int index) const |
intptr_t * | NativeFieldsDataAddr () const |
intptr_t | GetNativeField (int index) const |
void | GetNativeFields (uint16_t num_fields, intptr_t *field_values) const |
void | SetNativeFields (uint16_t num_fields, const intptr_t *field_values) const |
uint16_t | NumNativeFields () const |
void | SetNativeField (int index, intptr_t value) const |
bool | IsCallable (Function *function) const |
ObjectPtr | Invoke (const String &selector, const Array &arguments, const Array &argument_names, bool respect_reflectable=true, bool check_is_entrypoint=false) const |
ObjectPtr | InvokeGetter (const String &selector, bool respect_reflectable=true, bool check_is_entrypoint=false) const |
ObjectPtr | InvokeSetter (const String &selector, const Instance &argument, bool respect_reflectable=true, bool check_is_entrypoint=false) const |
ObjectPtr | EvaluateCompiledExpression (const Class &klass, const ExternalTypedData &kernel_buffer, const Array &type_definitions, const Array &arguments, const TypeArguments &type_arguments) const |
virtual ObjectPtr | HashCode () const |
IntegerPtr | IdentityHashCode (Thread *thread) const |
virtual bool | IsPointer () const |
Public Member Functions inherited from dart::Object | |
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 intptr_t | flags_offset () |
static intptr_t | hash_offset () |
static void | AddURI (URIs *uris, const String &name, const String &uri) |
static StringPtr | PrintURIs (URIs *uris) |
static bool | InstantiateAndTestSubtype (AbstractType *subtype, AbstractType *supertype, const TypeArguments &instantiator_type_args, const TypeArguments &function_type_args) |
static intptr_t | type_test_stub_entry_point_offset () |
static intptr_t | InstanceSize () |
static intptr_t | NextFieldOffset () |
Static Public Member Functions inherited from dart::Instance | |
static bool | NullIsAssignableTo (const AbstractType &other) |
static bool | NullIsAssignableTo (const AbstractType &other, const TypeArguments &other_instantiator_type_arguments, const TypeArguments &other_function_type_arguments) |
static ObjectPtr | EvaluateCompiledExpression (Thread *thread, const Object &receiver, const Library &library, const Class &klass, const ExternalTypedData &kernel_buffer, const Array &type_definitions, const Array ¶m_values, const TypeArguments &type_param_values) |
static intptr_t | UnroundedSize () |
static intptr_t | InstanceSize () |
static InstancePtr | New (const Class &cls, Heap::Space space=Heap::kNew) |
static InstancePtr | NewAlreadyFinalized (const Class &cls, Heap::Space space=Heap::kNew) |
static intptr_t | DataOffsetFor (intptr_t cid) |
static intptr_t | ElementSizeFor (intptr_t cid) |
static intptr_t | NextFieldOffset () |
static intptr_t | NativeFieldsOffset () |
Static Public Member Functions inherited from dart::Object | |
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) |
Protected Member Functions | |
bool | IsNullabilityEquivalent (Thread *thread, const AbstractType &other_type, TypeEquality kind) const |
void | SetHash (intptr_t value) const |
UntaggedAbstractType::TypeState | type_state () const |
void | set_flags (uint32_t value) const |
void | set_type_state (UntaggedAbstractType::TypeState value) const |
void | set_nullability (Nullability value) const |
HEAP_OBJECT_IMPLEMENTATION (AbstractType, Instance) | |
Protected Member Functions inherited from dart::Instance | |
virtual void | PrintSharedInstanceJSON (JSONObject *jsobj, bool ref, bool include_id=true) const |
Protected Member Functions inherited from dart::Object | |
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 |
Friends | |
class | Class |
class | ClearTypeHashVisitor |
class | Function |
class | TypeArguments |
Additional Inherited Members | |
Public Types inherited from dart::Object | |
enum | NameVisibility { kInternalName = 0 , kScrubbedName , kUserVisibleName } |
enum class | NameDisambiguation { kYes , kNo } |
using | UntaggedObjectType = UntaggedObject |
using | ObjectPtrType = ObjectPtr |
Static Public Attributes inherited from dart::Object | |
static constexpr intptr_t | kHashBits = 30 |
static const ClassId | kClassId = kObjectCid |
Static Protected Member Functions inherited from dart::Object | |
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) |
Protected Attributes inherited from dart::Object | |
ObjectPtr | ptr_ |
Definition at line 21257 of file object.cc.
|
virtual |
Reimplemented in dart::Type.
Definition at line 21051 of file object.cc.
|
virtual |
Reimplemented in dart::Type, dart::FunctionType, dart::TypeParameter, and dart::RecordType.
Definition at line 21240 of file object.cc.
|
inlinevirtual |
|
inlinevirtual |
|
inlinevirtual |
Reimplemented from dart::Instance.
StringPtr dart::AbstractType::ClassName | ( | ) | const |
|
virtual |
Reimplemented in dart::Type, dart::FunctionType, dart::TypeParameter, and dart::RecordType.
|
virtual |
Reimplemented in dart::Type, dart::FunctionType, dart::TypeParameter, and dart::RecordType.
Definition at line 21249 of file object.cc.
|
inlinevirtual |
Definition at line 9094 of file object.h.
|
inlinestatic |
|
inline |
Definition at line 13377 of file object.h.
|
inlinestatic |
|
inlinevirtual |
Reimplemented in dart::Type, dart::FunctionType, dart::TypeParameter, and dart::RecordType.
Definition at line 9083 of file object.h.
|
protected |
void dart::AbstractType::InitializeTypeTestingStubNonAtomic | ( | const Code & | stub | ) | const |
Definition at line 21787 of file object.cc.
|
inlinestatic |
Definition at line 9329 of file object.h.
|
static |
|
virtual |
Reimplemented in dart::Type, dart::FunctionType, dart::TypeParameter, and dart::RecordType.
Definition at line 21216 of file object.cc.
bool dart::AbstractType::IsDartClosureType | ( | ) | const |
bool dart::AbstractType::IsDartFunctionType | ( | ) | const |
bool dart::AbstractType::IsDartRecordType | ( | ) | const |
bool dart::AbstractType::IsDoubleType | ( | ) | const |
|
virtual |
Reimplemented in dart::Type, dart::FunctionType, dart::TypeParameter, and dart::RecordType.
Definition at line 21184 of file object.cc.
bool dart::AbstractType::IsFfiPointerType | ( | ) | const |
|
inline |
Definition at line 9053 of file object.h.
bool dart::AbstractType::IsFloat32x4Type | ( | ) | const |
bool dart::AbstractType::IsFloat64x2Type | ( | ) | const |
|
virtual |
Reimplemented in dart::Type, dart::FunctionType, dart::TypeParameter, and dart::RecordType.
Definition at line 21151 of file object.cc.
bool dart::AbstractType::IsInt32x4Type | ( | ) | const |
bool dart::AbstractType::IsIntegerImplementationType | ( | ) | const |
bool dart::AbstractType::IsIntType | ( | ) | const |
bool dart::AbstractType::IsNeverType | ( | ) | const |
|
inline |
|
protected |
Definition at line 21196 of file object.cc.
|
inline |
bool dart::AbstractType::IsNullType | ( | ) | const |
bool dart::AbstractType::IsSentinelType | ( | ) | const |
bool dart::AbstractType::IsStrictlyNonNullable | ( | ) | const |
Definition at line 21060 of file object.cc.
bool dart::AbstractType::IsStringType | ( | ) | const |
bool dart::AbstractType::IsSubtypeOf | ( | const AbstractType & | other, |
Heap::Space | space, | ||
FunctionTypeMapping * | function_type_equivalence = nullptr |
||
) | const |
Definition at line 21550 of file object.cc.
bool dart::AbstractType::IsTopTypeForInstanceOf | ( | ) | const |
bool dart::AbstractType::IsTopTypeForSubtyping | ( | ) | const |
bool dart::AbstractType::IsTypeClassAllowedBySpawnUri | ( | ) | const |
Definition at line 21473 of file object.cc.
StringPtr dart::AbstractType::Name | ( | ) | const |
const char * dart::AbstractType::NameCString | ( | ) | const |
Definition at line 21324 of file object.cc.
|
inlinestatic |
|
virtual |
Definition at line 21115 of file object.cc.
|
inline |
|
virtual |
Definition at line 21303 of file object.cc.
|
virtual |
Reimplemented in dart::Type, dart::FunctionType, dart::TypeParameter, and dart::RecordType.
Definition at line 21353 of file object.cc.
|
static |
Definition at line 21283 of file object.cc.
StringPtr dart::AbstractType::ScrubbedName | ( | ) | const |
const char * dart::AbstractType::ScrubbedNameCString | ( | ) | const |
|
protected |
|
protected |
|
protected |
|
inlineprotected |
|
virtual |
Definition at line 21081 of file object.cc.
void dart::AbstractType::SetIsFinalized | ( | ) | const |
Definition at line 21161 of file object.cc.
void dart::AbstractType::SetTypeTestingStub | ( | const Code & | stub | ) | const |
Definition at line 21761 of file object.cc.
|
virtual |
Reimplemented in dart::Type.
Definition at line 21042 of file object.cc.
|
virtual |
Reimplemented in dart::Type, dart::FunctionType, dart::TypeParameter, and dart::RecordType.
Definition at line 21033 of file object.cc.
|
inlineprotected |
|
inline |
|
inline |
|
inlinestatic |
AbstractTypePtr dart::AbstractType::UnwrapFutureOr | ( | ) | const |
Definition at line 21526 of file object.cc.
|
virtual |
Reimplemented in dart::Type, dart::FunctionType, dart::TypeParameter, and dart::RecordType.
|
inline |
StringPtr dart::AbstractType::UserVisibleName | ( | ) | const |
const char * dart::AbstractType::UserVisibleNameCString | ( | ) | const |
|
friend |
|
friend |