Flutter Engine
The Flutter Engine
Loading...
Searching...
No Matches
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 6240 of file object.h.

Member Function Documentation

◆ data()

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

Definition at line 6248 of file object.h.

6248{ 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 6251 of file object.h.

6251 {
6252 // All of the table flags and payload size must match.
6253 if (untag()->payload()->flags_and_size() !=
6254 other.untag()->payload()->flags_and_size()) {
6255 return false;
6256 }
6257 NoSafepointScope no_safepoint;
6258 return memcmp(data(), other.data(), payload_size()) == 0;
6259 }
const uint8_t * data() const
Definition object.h:6248
uintptr_t payload_size() const
Definition object.h:6242
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)

◆ Hash()

uword dart::CompressedStackMaps::Hash ( ) const

Definition at line 15987 of file object.cc.

15987 {
15988 NoSafepointScope scope;
15989 uint8_t* data = UnsafeMutableNonPointer(&untag()->payload()->data()[0]);
15990 uint8_t* end = data + payload_size();
15991 uint32_t hash = payload_size();
15992 for (uint8_t* cursor = data; cursor < end; cursor++) {
15993 hash = CombineHashes(hash, *cursor);
15994 }
15995 return FinalizeHash(hash, kHashBits);
15996}
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 6262 of file object.h.

6262 {
6263 return sizeof(UntaggedCompressedStackMaps) +
6265 }

◆ InstanceSize() [1/2]

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

Definition at line 6272 of file object.h.

6272{ return 0; }

◆ InstanceSize() [2/2]

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

Definition at line 6273 of file object.h.

6273 {
6275 }
static intptr_t UnroundedSize(CompressedStackMapsPtr maps)
Definition object.h:6266
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 6283 of file object.h.

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

◆ IsGlobalTable() [2/2]

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

Definition at line 6284 of file object.h.

6284 {
6286 raw->untag()->payload()->flags_and_size());
6287 }
static constexpr bool decode(Payload::FlagsAndSizeHeader value)
Definition bitfield.h:173

◆ iterator()

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

Definition at line 16016 of file object.cc.

16016 {
16017 return Iterator<CompressedStackMaps>(
16019 thread->zone(), thread->isolate_group()
16020 ->object_store()
16021 ->canonicalized_stack_map_entries()));
16022}
static Object & Handle()
Definition object.h:407

◆ NewGlobalTable()

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

Definition at line 6299 of file object.h.

6300 {
6301 return New(payload, size, /*is_global_table=*/true,
6302 /*uses_global_table=*/false);
6303 }

◆ NewInlined()

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

Definition at line 6289 of file object.h.

6289 {
6290 return New(payload, size, /*is_global_table=*/false,
6291 /*uses_global_table=*/false);
6292 }

◆ NewUsingTable()

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

Definition at line 6293 of file object.h.

6294 {
6295 return New(payload, size, /*is_global_table=*/false,
6296 /*uses_global_table=*/true);
6297 }

◆ payload_size()

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

Definition at line 6242 of file object.h.

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

◆ PayloadSizeOf()

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

Definition at line 6243 of file object.h.

6243 {
6245 raw->untag()->payload()->flags_and_size());
6246 }

◆ UnroundedSize() [1/2]

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

Definition at line 6266 of file object.h.

6266 {
6268 }

◆ UnroundedSize() [2/2]

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

Definition at line 6269 of file object.h.

6269 {
6270 return HeaderSize() + length;
6271 }
static intptr_t HeaderSize()
Definition object.h:6262

◆ UsesGlobalTable() [1/2]

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

Definition at line 6277 of file object.h.

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

◆ UsesGlobalTable() [2/2]

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

Definition at line 6278 of file object.h.

6278 {
6280 raw->untag()->payload()->flags_and_size());
6281 }

◆ WriteToBuffer()

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

Definition at line 15998 of file object.cc.

16000 {
16001 auto it = iterator(Thread::Current());
16002 bool first_entry = true;
16003 while (it.MoveNext()) {
16004 if (!first_entry) {
16005 buffer->AddString(separator);
16006 }
16007 buffer->Printf("0x%.8" Px ": ", base + it.pc_offset());
16008 for (intptr_t i = 0, n = it.Length(); i < n; i++) {
16009 buffer->AddString(it.IsObject(i) ? "1" : "0");
16010 }
16011 first_entry = false;
16012 }
16013}
Iterator< CompressedStackMaps > iterator(Thread *thread) const
Definition object.cc:16016
static Thread * Current()
Definition thread.h:361
static const uint8_t buffer[]
#define Px
Definition globals.h:410

Friends And Related Symbol Documentation

◆ Class

friend class Class
friend

Definition at line 6542 of file object.h.


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