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

#include <object.h>

Inheritance diagram for dart::CompressedStackMaps:
dart::Object

Classes

class  Iterator
 
class  RawPayloadHandle
 

Public Member Functions

uintptr_t payload_size () const
 
const uint8_t * data () const
 
bool Equals (const CompressedStackMaps &other) const
 
uword Hash () const
 
bool UsesGlobalTable () const
 
bool IsGlobalTable () const
 
Iterator< CompressedStackMapsiterator (Thread *thread) const
 
void WriteToBuffer (BaseTextBuffer *buffer, uword base, const char *separator) 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 uintptr_t PayloadSizeOf (const CompressedStackMapsPtr raw)
 
static intptr_t HeaderSize ()
 
static intptr_t UnroundedSize (CompressedStackMapsPtr maps)
 
static intptr_t UnroundedSize (intptr_t length)
 
static intptr_t InstanceSize ()
 
static intptr_t InstanceSize (intptr_t length)
 
static bool UsesGlobalTable (const CompressedStackMapsPtr raw)
 
static bool IsGlobalTable (const CompressedStackMapsPtr raw)
 
static CompressedStackMapsPtr NewInlined (const void *payload, intptr_t size)
 
static CompressedStackMapsPtr NewUsingTable (const void *payload, intptr_t size)
 
static CompressedStackMapsPtr NewGlobalTable (const void *payload, intptr_t size)
 
- 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)
 

Friends

class Class
 

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
 
- 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
 
- 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 6267 of file object.h.

Member Function Documentation

◆ data()

const uint8_t * dart::CompressedStackMaps::data ( ) const
inline

Definition at line 6275 of file object.h.

6275{ return ptr()->untag()->payload()->data(); }
UntaggedObject * untag() const
ObjectPtr ptr() const
Definition: object.h:332

◆ Equals()

bool dart::CompressedStackMaps::Equals ( const CompressedStackMaps other) const
inline

Definition at line 6278 of file object.h.

6278 {
6279 // All of the table flags and payload size must match.
6280 if (untag()->payload()->flags_and_size() !=
6281 other.untag()->payload()->flags_and_size()) {
6282 return false;
6283 }
6284 NoSafepointScope no_safepoint;
6285 return memcmp(data(), other.data(), payload_size()) == 0;
6286 }
const uint8_t * data() const
Definition: object.h:6275
uintptr_t payload_size() const
Definition: object.h:6269
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

◆ Hash()

uword dart::CompressedStackMaps::Hash ( ) const

Definition at line 15940 of file object.cc.

15940 {
15941 NoSafepointScope scope;
15942 uint8_t* data = UnsafeMutableNonPointer(&untag()->payload()->data()[0]);
15943 uint8_t* end = data + payload_size();
15944 uint32_t hash = payload_size();
15945 for (uint8_t* cursor = data; cursor < end; cursor++) {
15946 hash = CombineHashes(hash, *cursor);
15947 }
15948 return FinalizeHash(hash, kHashBits);
15949}
static uint32_t hash(const SkShaderBase::GradientInfo &v)
FieldType * UnsafeMutableNonPointer(const FieldType *addr) const
Definition: object.h:837
static constexpr intptr_t kHashBits
Definition: object.h:323
glong glong end
uint32_t CombineHashes(uint32_t hash, uint32_t other_hash)
Definition: hash.h:12
uint32_t FinalizeHash(uint32_t hash, intptr_t hashbits=kBitsPerInt32)
Definition: hash.h:20

◆ HeaderSize()

static intptr_t dart::CompressedStackMaps::HeaderSize ( )
inlinestatic

Definition at line 6289 of file object.h.

6289 {
6290 return sizeof(UntaggedCompressedStackMaps) +
6292 }

◆ InstanceSize() [1/2]

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

Definition at line 6299 of file object.h.

6299{ return 0; }

◆ InstanceSize() [2/2]

static intptr_t dart::CompressedStackMaps::InstanceSize ( intptr_t  length)
inlinestatic

Definition at line 6300 of file object.h.

6300 {
6302 }
static intptr_t UnroundedSize(CompressedStackMapsPtr maps)
Definition: object.h:6293
static constexpr intptr_t RoundedAllocationSize(intptr_t size)
Definition: object.h:758
size_t length

◆ IsGlobalTable() [1/2]

bool dart::CompressedStackMaps::IsGlobalTable ( ) const
inline

Definition at line 6310 of file object.h.

6310{ return IsGlobalTable(ptr()); }
bool IsGlobalTable() const
Definition: object.h:6310

◆ IsGlobalTable() [2/2]

static bool dart::CompressedStackMaps::IsGlobalTable ( const CompressedStackMapsPtr  raw)
inlinestatic

Definition at line 6311 of file object.h.

6311 {
6313 raw->untag()->payload()->flags_and_size());
6314 }
static DecodeResult decode(std::string path)
Definition: png_codec.cpp:124

◆ iterator()

CompressedStackMaps::Iterator< CompressedStackMaps > dart::CompressedStackMaps::iterator ( Thread thread) const

Definition at line 15969 of file object.cc.

15969 {
15970 return Iterator<CompressedStackMaps>(
15972 thread->zone(), thread->isolate_group()
15973 ->object_store()
15974 ->canonicalized_stack_map_entries()));
15975}
static Object & Handle()
Definition: object.h:407

◆ NewGlobalTable()

static CompressedStackMapsPtr dart::CompressedStackMaps::NewGlobalTable ( const void *  payload,
intptr_t  size 
)
inlinestatic

Definition at line 6326 of file object.h.

6327 {
6328 return New(payload, size, /*is_global_table=*/true,
6329 /*uses_global_table=*/false);
6330 }
it will be possible to load the file into Perfetto s trace viewer disable asset Prevents usage of any non test fonts unless they were explicitly Loaded via prefetched default font Indicates whether the embedding started a prefetch of the default font manager before creating the engine run In non interactive keep the shell running after the Dart script has completed enable serial On low power devices with low core running concurrent GC tasks on threads can cause them to contend with the UI thread which could potentially lead to jank This option turns off all concurrent GC activities domain network JSON encoded network policy per domain This overrides the DisallowInsecureConnections switch Embedder can specify whether to allow or disallow insecure connections at a domain level old gen heap size
Definition: switches.h:259

◆ NewInlined()

static CompressedStackMapsPtr dart::CompressedStackMaps::NewInlined ( const void *  payload,
intptr_t  size 
)
inlinestatic

Definition at line 6316 of file object.h.

6316 {
6317 return New(payload, size, /*is_global_table=*/false,
6318 /*uses_global_table=*/false);
6319 }

◆ NewUsingTable()

static CompressedStackMapsPtr dart::CompressedStackMaps::NewUsingTable ( const void *  payload,
intptr_t  size 
)
inlinestatic

Definition at line 6320 of file object.h.

6321 {
6322 return New(payload, size, /*is_global_table=*/false,
6323 /*uses_global_table=*/true);
6324 }

◆ payload_size()

uintptr_t dart::CompressedStackMaps::payload_size ( ) const
inline

Definition at line 6269 of file object.h.

6269{ return PayloadSizeOf(ptr()); }
static uintptr_t PayloadSizeOf(const CompressedStackMapsPtr raw)
Definition: object.h:6270

◆ PayloadSizeOf()

static uintptr_t dart::CompressedStackMaps::PayloadSizeOf ( const CompressedStackMapsPtr  raw)
inlinestatic

Definition at line 6270 of file object.h.

6270 {
6272 raw->untag()->payload()->flags_and_size());
6273 }

◆ UnroundedSize() [1/2]

static intptr_t dart::CompressedStackMaps::UnroundedSize ( CompressedStackMapsPtr  maps)
inlinestatic

Definition at line 6293 of file object.h.

6293 {
6295 }

◆ UnroundedSize() [2/2]

static intptr_t dart::CompressedStackMaps::UnroundedSize ( intptr_t  length)
inlinestatic

Definition at line 6296 of file object.h.

6296 {
6297 return HeaderSize() + length;
6298 }
static intptr_t HeaderSize()
Definition: object.h:6289

◆ UsesGlobalTable() [1/2]

bool dart::CompressedStackMaps::UsesGlobalTable ( ) const
inline

Definition at line 6304 of file object.h.

6304{ return UsesGlobalTable(ptr()); }
bool UsesGlobalTable() const
Definition: object.h:6304

◆ UsesGlobalTable() [2/2]

static bool dart::CompressedStackMaps::UsesGlobalTable ( const CompressedStackMapsPtr  raw)
inlinestatic

Definition at line 6305 of file object.h.

6305 {
6307 raw->untag()->payload()->flags_and_size());
6308 }

◆ WriteToBuffer()

void dart::CompressedStackMaps::WriteToBuffer ( BaseTextBuffer buffer,
uword  base,
const char *  separator 
) const

Definition at line 15951 of file object.cc.

15953 {
15954 auto it = iterator(Thread::Current());
15955 bool first_entry = true;
15956 while (it.MoveNext()) {
15957 if (!first_entry) {
15958 buffer->AddString(separator);
15959 }
15960 buffer->Printf("0x%.8" Px ": ", base + it.pc_offset());
15961 for (intptr_t i = 0, n = it.Length(); i < n; i++) {
15962 buffer->AddString(it.IsObject(i) ? "1" : "0");
15963 }
15964 first_entry = false;
15965 }
15966}
Iterator< CompressedStackMaps > iterator(Thread *thread) const
Definition: object.cc:15969
static Thread * Current()
Definition: thread.h:362
DEF_SWITCHES_START aot vmservice shared library Name of the *so containing AOT compiled Dart assets for launching the service isolate vm snapshot The VM snapshot data that will be memory mapped as read only SnapshotAssetPath must be present isolate snapshot The isolate snapshot data that will be memory mapped as read only SnapshotAssetPath must be present cache dir Path to the cache directory This is different from the persistent_cache_path in embedder which is used for Skia shader cache icu native lib Path to the library file that exports the ICU data vm service The hostname IP address on which the Dart VM Service should be served If not defaults to or::depending on whether ipv6 is specified vm service A custom Dart VM Service port The default is to pick a randomly available open port disable vm Disable the Dart VM Service The Dart VM Service is never available in release mode disable vm service Disable mDNS Dart VM Service publication Bind to the IPv6 localhost address for the Dart VM Service Ignored if vm service host is set endless trace buffer
Definition: switches.h:126
#define Px
Definition: globals.h:410

Friends And Related Function Documentation

◆ Class

friend class Class
friend

Definition at line 6569 of file object.h.


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