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

#include <object.h>

Inheritance diagram for dart::ContextScope:
dart::Object

Classes

struct  ArrayTraits
 

Public Member Functions

intptr_t num_variables () const
 
TokenPosition TokenIndexAt (intptr_t scope_index) const
 
void SetTokenIndexAt (intptr_t scope_index, TokenPosition token_pos) const
 
TokenPosition DeclarationTokenIndexAt (intptr_t scope_index) const
 
void SetDeclarationTokenIndexAt (intptr_t scope_index, TokenPosition declaration_token_pos) const
 
StringPtr NameAt (intptr_t scope_index) const
 
void SetNameAt (intptr_t scope_index, const String &name) const
 
void ClearFlagsAt (intptr_t scope_index) const
 
intptr_t LateInitOffsetAt (intptr_t scope_index) const
 
void SetLateInitOffsetAt (intptr_t scope_index, intptr_t late_init_offset) const
 
AbstractTypePtr TypeAt (intptr_t scope_index) const
 
void SetTypeAt (intptr_t scope_index, const AbstractType &type) const
 
intptr_t CidAt (intptr_t scope_index) const
 
void SetCidAt (intptr_t scope_index, intptr_t cid) const
 
intptr_t ContextIndexAt (intptr_t scope_index) const
 
void SetContextIndexAt (intptr_t scope_index, intptr_t context_index) const
 
intptr_t ContextLevelAt (intptr_t scope_index) const
 
void SetContextLevelAt (intptr_t scope_index, intptr_t context_level) const
 
intptr_t KernelOffsetAt (intptr_t scope_index) const
 
void SetKernelOffsetAt (intptr_t scope_index, intptr_t kernel_offset) 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 InstanceSize ()
 
static intptr_t InstanceSize (intptr_t len)
 
static ContextScopePtr New (intptr_t num_variables, bool is_implicit)
 
- 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)
 

Static Public Attributes

static constexpr intptr_t kBytesPerElement
 
static constexpr intptr_t kMaxElements = kSmiMax / kBytesPerElement
 
- Static Public Attributes inherited from dart::Object
static constexpr intptr_t kHashBits = 30
 
static const ClassId kClassId = kObjectCid
 

Friends

class Class
 
class Object
 

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

Member Function Documentation

◆ CidAt()

intptr_t dart::ContextScope::CidAt ( intptr_t  scope_index) const

Definition at line 18676 of file object.cc.

18676 {
18677 return Smi::Value(untag()->cid_at(scope_index));
18678}
intptr_t Value() const
Definition: object.h:9990
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

◆ ClearFlagsAt()

void dart::ContextScope::ClearFlagsAt ( intptr_t  scope_index) const

Definition at line 18626 of file object.cc.

18626 {
18627 untag()->set_flags_at(scope_index, Smi::New(0));
18628}
static SmiPtr New(intptr_t value)
Definition: object.h:10006

◆ ContextIndexAt()

intptr_t dart::ContextScope::ContextIndexAt ( intptr_t  scope_index) const

Definition at line 18684 of file object.cc.

18684 {
18685 return Smi::Value(untag()->context_index_at(scope_index));
18686}

◆ ContextLevelAt()

intptr_t dart::ContextScope::ContextLevelAt ( intptr_t  scope_index) const

Definition at line 18693 of file object.cc.

18693 {
18694 return Smi::Value(untag()->context_level_at(scope_index));
18695}

◆ DeclarationTokenIndexAt()

TokenPosition dart::ContextScope::DeclarationTokenIndexAt ( intptr_t  scope_index) const

Definition at line 18605 of file object.cc.

18606 {
18608 Smi::Value(untag()->declaration_token_pos_at(scope_index)));
18609}
static TokenPosition Deserialize(int32_t value)

◆ InstanceSize() [1/2]

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

Definition at line 7535 of file object.h.

7535 {
7536 ASSERT(sizeof(UntaggedContextScope) ==
7537 OFFSET_OF_RETURNED_VALUE(UntaggedContextScope, data));
7538 return 0;
7539 }
#define ASSERT(E)
static int8_t data[kExtLength]
#define OFFSET_OF_RETURNED_VALUE(type, accessor)
Definition: globals.h:143

◆ InstanceSize() [2/2]

static intptr_t dart::ContextScope::InstanceSize ( intptr_t  len)
inlinestatic

Definition at line 7541 of file object.h.

7541 {
7542 ASSERT(0 <= len && len <= kMaxElements);
7543 return RoundedAllocationSize(sizeof(UntaggedContextScope) +
7544 (len * kBytesPerElement));
7545 }
static constexpr intptr_t kBytesPerElement
Definition: object.h:7524
static constexpr intptr_t kMaxElements
Definition: object.h:7526
static constexpr intptr_t RoundedAllocationSize(intptr_t size)
Definition: object.h:758

◆ KernelOffsetAt()

intptr_t dart::ContextScope::KernelOffsetAt ( intptr_t  scope_index) const

Definition at line 18702 of file object.cc.

18702 {
18703 return Smi::Value(untag()->kernel_offset_at(scope_index));
18704}

◆ LateInitOffsetAt()

intptr_t dart::ContextScope::LateInitOffsetAt ( intptr_t  scope_index) const

Definition at line 18658 of file object.cc.

18658 {
18659 return Smi::Value(untag()->late_init_offset_at(scope_index));
18660}

◆ NameAt()

StringPtr dart::ContextScope::NameAt ( intptr_t  scope_index) const

Definition at line 18618 of file object.cc.

18618 {
18619 return untag()->name_at(scope_index);
18620}

◆ New()

ContextScopePtr dart::ContextScope::New ( intptr_t  num_variables,
bool  is_implicit 
)
static

Definition at line 18577 of file object.cc.

18577 {
18579 if (num_variables < 0 || num_variables > kMaxElements) {
18580 // This should be caught before we reach here.
18581 FATAL("Fatal error in ContextScope::New: invalid num_variables %" Pd "\n",
18583 }
18584 ContextScope& result = ContextScope::Handle();
18585 {
18586 auto raw = Object::Allocate<ContextScope>(Heap::kOld, num_variables);
18587 NoSafepointScope no_safepoint;
18588 result = raw;
18589 result.set_num_variables(num_variables);
18590 }
18591 result.set_is_implicit(is_implicit);
18592 return result.ptr();
18593}
intptr_t num_variables() const
Definition: object.h:7484
@ kOld
Definition: heap.h:39
static ObjectPtr null()
Definition: object.h:433
static ClassPtr context_scope_class()
Definition: object.h:550
static Object & Handle()
Definition: object.h:407
#define FATAL(error)
GAsyncResult * result
#define Pd
Definition: globals.h:408

◆ num_variables()

intptr_t dart::ContextScope::num_variables ( ) const
inline

Definition at line 7484 of file object.h.

7484{ return untag()->num_variables_; }

◆ SetCidAt()

void dart::ContextScope::SetCidAt ( intptr_t  scope_index,
intptr_t  cid 
) const

Definition at line 18680 of file object.cc.

18680 {
18681 untag()->set_cid_at(scope_index, Smi::New(cid));
18682}
const intptr_t cid

◆ SetContextIndexAt()

void dart::ContextScope::SetContextIndexAt ( intptr_t  scope_index,
intptr_t  context_index 
) const

Definition at line 18688 of file object.cc.

18689 {
18690 untag()->set_context_index_at(scope_index, Smi::New(context_index));
18691}

◆ SetContextLevelAt()

void dart::ContextScope::SetContextLevelAt ( intptr_t  scope_index,
intptr_t  context_level 
) const

Definition at line 18697 of file object.cc.

18698 {
18699 untag()->set_context_level_at(scope_index, Smi::New(context_level));
18700}

◆ SetDeclarationTokenIndexAt()

void dart::ContextScope::SetDeclarationTokenIndexAt ( intptr_t  scope_index,
TokenPosition  declaration_token_pos 
) const

Definition at line 18611 of file object.cc.

18613 {
18614 untag()->set_declaration_token_pos_at(
18615 scope_index, Smi::New(declaration_token_pos.Serialize()));
18616}

◆ SetKernelOffsetAt()

void dart::ContextScope::SetKernelOffsetAt ( intptr_t  scope_index,
intptr_t  kernel_offset 
) const

Definition at line 18706 of file object.cc.

18707 {
18708 untag()->set_kernel_offset_at(scope_index, Smi::New(kernel_offset));
18709}

◆ SetLateInitOffsetAt()

void dart::ContextScope::SetLateInitOffsetAt ( intptr_t  scope_index,
intptr_t  late_init_offset 
) const

Definition at line 18662 of file object.cc.

18663 {
18664 untag()->set_late_init_offset_at(scope_index, Smi::New(late_init_offset));
18665}

◆ SetNameAt()

void dart::ContextScope::SetNameAt ( intptr_t  scope_index,
const String name 
) const

Definition at line 18622 of file object.cc.

18622 {
18623 untag()->set_name_at(scope_index, name.ptr());
18624}
const char *const name

◆ SetTokenIndexAt()

void dart::ContextScope::SetTokenIndexAt ( intptr_t  scope_index,
TokenPosition  token_pos 
) const

Definition at line 18600 of file object.cc.

18601 {
18602 untag()->set_token_pos_at(scope_index, Smi::New(token_pos.Serialize()));
18603}

◆ SetTypeAt()

void dart::ContextScope::SetTypeAt ( intptr_t  scope_index,
const AbstractType type 
) const

Definition at line 18671 of file object.cc.

18672 {
18673 untag()->set_type_at(scope_index, type.ptr());
18674}
GLenum type

◆ TokenIndexAt()

TokenPosition dart::ContextScope::TokenIndexAt ( intptr_t  scope_index) const

Definition at line 18595 of file object.cc.

18595 {
18597 Smi::Value(untag()->token_pos_at(scope_index)));
18598}

◆ TypeAt()

AbstractTypePtr dart::ContextScope::TypeAt ( intptr_t  scope_index) const

Definition at line 18667 of file object.cc.

18667 {
18668 return untag()->type_at(scope_index);
18669}

Friends And Related Function Documentation

◆ Class

friend class Class
friend

Definition at line 7568 of file object.h.

◆ Object

friend class Object
friend

Definition at line 7569 of file object.h.

Member Data Documentation

◆ kBytesPerElement

constexpr intptr_t dart::ContextScope::kBytesPerElement
staticconstexpr
Initial value:
=
sizeof(UntaggedContextScope::VariableDesc)

Definition at line 7524 of file object.h.

◆ kMaxElements

constexpr intptr_t dart::ContextScope::kMaxElements = kSmiMax / kBytesPerElement
staticconstexpr

Definition at line 7526 of file object.h.


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