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

#include <object.h>

Inheritance diagram for dart::TypedDataView:
dart::TypedDataBase dart::PointerBase dart::Instance dart::Object

Public Member Functions

TypedDataBasePtr typed_data () const
 
void InitializeWith (const TypedDataBase &typed_data, intptr_t offset_in_bytes, intptr_t length)
 
SmiPtr offset_in_bytes () const
 
- Public Member Functions inherited from dart::TypedDataBase
SmiPtr length () const
 
intptr_t Length () const
 
intptr_t LengthInBytes () const
 
TypedDataElementType ElementType () const
 
intptr_t ElementSizeInBytes () const
 
bool IsExternalOrExternalView () const
 
TypedDataViewPtr ViewFromTo (intptr_t start, intptr_t end, Heap::Space space=Heap::kNew) const
 
void * DataAddr (intptr_t byte_offset) 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 TypedDataViewPtr New (intptr_t class_id, Heap::Space space=Heap::kNew)
 
static TypedDataViewPtr New (intptr_t class_id, const TypedDataBase &typed_data, intptr_t offset_in_bytes, intptr_t length, Heap::Space space=Heap::kNew)
 
static intptr_t InstanceSize ()
 
static InstancePtr Data (const TypedDataView &view)
 
static SmiPtr OffsetInBytes (const TypedDataView &view)
 
static bool IsExternalTypedDataView (const TypedDataView &view_obj)
 
static intptr_t typed_data_offset ()
 
static intptr_t offset_in_bytes_offset ()
 
- Static Public Member Functions inherited from dart::TypedDataBase
static intptr_t length_offset ()
 
static intptr_t ElementSizeInBytes (classid_t cid)
 
static TypedDataElementType ElementType (classid_t cid)
 
- Static Public Member Functions inherited from dart::PointerBase
static intptr_t data_offset ()
 
- 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 &param_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 ObjectHandle ()
 
static ObjectHandle (Zone *zone)
 
static ObjectHandle (ObjectPtr ptr)
 
static ObjectHandle (Zone *zone, ObjectPtr ptr)
 
static ObjectZoneHandle ()
 
static ObjectZoneHandle (Zone *zone)
 
static ObjectZoneHandle (ObjectPtr ptr)
 
static ObjectZoneHandle (Zone *zone, ObjectPtr ptr)
 
static ObjectReadOnlyHandle ()
 
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

virtual uint8_t * Validate (uint8_t *data) const
 
- Protected Member Functions inherited from dart::TypedDataBase
void SetLength (intptr_t value) const
 
virtual uint8_t * Validate (uint8_t *data) const
 
- 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 DeferredObject
 
class Object
 
class TypedDataViewDeserializationCluster
 

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 ObjectHandleImpl (Zone *zone, ObjectPtr ptr, intptr_t default_cid)
 
static DART_NOINLINE ObjectZoneHandleImpl (Zone *zone, ObjectPtr ptr, intptr_t default_cid)
 
static DART_NOINLINE ObjectReadOnlyHandleImpl (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_
 

Detailed Description

Definition at line 11783 of file object.h.

Member Function Documentation

◆ Data()

static InstancePtr dart::TypedDataView::Data ( const TypedDataView view)
inlinestatic

Definition at line 11797 of file object.h.

11797 {
11798 return view.typed_data();
11799 }

◆ InitializeWith()

void dart::TypedDataView::InitializeWith ( const TypedDataBase typed_data,
intptr_t  offset_in_bytes,
intptr_t  length 
)
inline

Definition at line 11822 of file object.h.

11824 {
11825 const classid_t cid = typed_data.GetClassId();
11827 untag()->set_typed_data(typed_data.ptr());
11828 untag()->set_length(Smi::New(length));
11829 untag()->set_offset_in_bytes(Smi::New(offset_in_bytes));
11830
11831 // Update the inner pointer.
11832 RecomputeDataField();
11833 }
static SmiPtr New(intptr_t value)
Definition: object.h:10006
SmiPtr length() const
Definition: object.h:11516
TypedDataBasePtr typed_data() const
Definition: object.h:11820
SmiPtr offset_in_bytes() const
Definition: object.h:11835
#define ASSERT(E)
bool IsTypedDataClassId(intptr_t index)
Definition: class_id.h:433
int32_t classid_t
Definition: globals.h:524
const intptr_t cid
raw_obj untag() -> num_entries()) VARIABLE_COMPRESSED_VISITOR(Array, Smi::Value(raw_obj->untag() ->length())) VARIABLE_COMPRESSED_VISITOR(TypedData, TypedData::ElementSizeInBytes(raw_obj->GetClassId()) *Smi::Value(raw_obj->untag() ->length())) VARIABLE_COMPRESSED_VISITOR(Record, RecordShape(raw_obj->untag() ->shape()).num_fields()) VARIABLE_NULL_VISITOR(CompressedStackMaps, CompressedStackMaps::PayloadSizeOf(raw_obj)) VARIABLE_NULL_VISITOR(OneByteString, Smi::Value(raw_obj->untag() ->length())) VARIABLE_NULL_VISITOR(TwoByteString, Smi::Value(raw_obj->untag() ->length())) intptr_t UntaggedField::VisitFieldPointers(FieldPtr raw_obj, ObjectPointerVisitor *visitor)
Definition: raw_object.cc:558
bool IsExternalTypedDataClassId(intptr_t index)
Definition: class_id.h:447

◆ InstanceSize()

static intptr_t dart::TypedDataView::InstanceSize ( )
inlinestatic

Definition at line 11793 of file object.h.

11793 {
11794 return RoundedAllocationSize(sizeof(UntaggedTypedDataView));
11795 }
static constexpr intptr_t RoundedAllocationSize(intptr_t size)
Definition: object.h:758

◆ IsExternalTypedDataView()

static bool dart::TypedDataView::IsExternalTypedDataView ( const TypedDataView view_obj)
inlinestatic

Definition at line 11805 of file object.h.

11805 {
11806 const auto& data = Instance::Handle(Data(view_obj));
11807 intptr_t cid = data.ptr()->GetClassId();
11810 }
static Object & Handle()
Definition: object.h:407
static InstancePtr Data(const TypedDataView &view)
Definition: object.h:11797
static int8_t data[kExtLength]

◆ New() [1/2]

TypedDataViewPtr dart::TypedDataView::New ( intptr_t  class_id,
const TypedDataBase typed_data,
intptr_t  offset_in_bytes,
intptr_t  length,
Heap::Space  space = Heap::kNew 
)
static

Definition at line 25662 of file object.cc.

25666 {
25667 auto& result = TypedDataView::Handle(TypedDataView::New(class_id, space));
25668 result.InitializeWith(typed_data, offset_in_bytes, length);
25669 return result.ptr();
25670}
static TypedDataViewPtr New(intptr_t class_id, Heap::Space space=Heap::kNew)
Definition: object.cc:25658
GAsyncResult * result

◆ New() [2/2]

TypedDataViewPtr dart::TypedDataView::New ( intptr_t  class_id,
Heap::Space  space = Heap::kNew 
)
static

Definition at line 25658 of file object.cc.

25658 {
25659 return Object::AllocateVariant<TypedDataView>(class_id, space);
25660}

◆ offset_in_bytes()

SmiPtr dart::TypedDataView::offset_in_bytes ( ) const
inline

Definition at line 11835 of file object.h.

11835{ return untag()->offset_in_bytes(); }

◆ offset_in_bytes_offset()

static intptr_t dart::TypedDataView::offset_in_bytes_offset ( )
inlinestatic

Definition at line 11816 of file object.h.

11816 {
11817 return OFFSET_OF(UntaggedTypedDataView, offset_in_bytes_);
11818 }
#define OFFSET_OF(type, field)
Definition: globals.h:138

◆ OffsetInBytes()

static SmiPtr dart::TypedDataView::OffsetInBytes ( const TypedDataView view)
inlinestatic

Definition at line 11801 of file object.h.

11801 {
11802 return view.offset_in_bytes();
11803 }

◆ typed_data()

TypedDataBasePtr dart::TypedDataView::typed_data ( ) const
inline

Definition at line 11820 of file object.h.

11820{ return untag()->typed_data(); }

◆ typed_data_offset()

static intptr_t dart::TypedDataView::typed_data_offset ( )
inlinestatic

Definition at line 11812 of file object.h.

11812 {
11813 return OFFSET_OF(UntaggedTypedDataView, typed_data_);
11814 }

◆ Validate()

virtual uint8_t * dart::TypedDataView::Validate ( uint8_t *  data) const
inlineprotectedvirtual

Reimplemented from dart::TypedDataBase.

Definition at line 11838 of file object.h.

11838{ return data; }

Friends And Related Function Documentation

◆ Class

friend class Class
friend

Definition at line 11851 of file object.h.

◆ DeferredObject

friend class DeferredObject
friend

Definition at line 11852 of file object.h.

◆ Object

friend class Object
friend

Definition at line 11853 of file object.h.

◆ TypedDataViewDeserializationCluster

Definition at line 11854 of file object.h.


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