Home
last modified time | relevance | path

Searched refs:ObjectHeader (Results 1 – 25 of 195) sorted by relevance

12345678

/ark/runtime_core/runtime/tests/
Dpygote_space_allocator_test_base.h94 auto non_movable_header = panda::ObjectHeader::CreateNonMovable(cls); in InitAllocTest()
96 …ASSERT_TRUE(pygote_space_allocator->ContainObject(static_cast<ObjectHeader *>(non_movable_header))… in InitAllocTest()
97 ASSERT_TRUE(pygote_space_allocator->IsLive(static_cast<ObjectHeader *>(non_movable_header))); in InitAllocTest()
99 auto movable_header = panda::ObjectHeader::Create(cls); in InitAllocTest()
101 … ASSERT_FALSE(pygote_space_allocator->ContainObject(static_cast<ObjectHeader *>(movable_header))); in InitAllocTest()
104 …ASSERT_TRUE(pygote_space_allocator->ContainObject(static_cast<ObjectHeader *>(non_movable_header))… in InitAllocTest()
105 ASSERT_FALSE(pygote_space_allocator->IsLive(static_cast<ObjectHeader *>(non_movable_header))); in InitAllocTest()
115 auto non_movable_header = panda::ObjectHeader::CreateNonMovable(cls); in ForkedAllocTest()
117 …ASSERT_FALSE(pygote_space_allocator->ContainObject(static_cast<ObjectHeader *>(non_movable_header)… in ForkedAllocTest()
119 auto movable_header = panda::ObjectHeader::Create(cls); in ForkedAllocTest()
[all …]
/ark/runtime_core/runtime/include/
Dobject_header-inl.h26 inline bool ObjectHeader::IsInstanceOf(Class *klass) in IsInstanceOf()
33 inline T ObjectHeader::GetFieldPrimitive(size_t offset) const in GetFieldPrimitive()
40 inline void ObjectHeader::SetFieldPrimitive(size_t offset, T value) in SetFieldPrimitive()
47 inline ObjectHeader *ObjectHeader::GetFieldObject(int offset) const in GetFieldObject()
54 inline void ObjectHeader::SetFieldObject(size_t offset, ObjectHeader *value) in SetFieldObject()
60 inline T ObjectHeader::GetFieldPrimitive(const Field &field) const in GetFieldPrimitive()
66 inline void ObjectHeader::SetFieldPrimitive(const Field &field, T value) in SetFieldPrimitive()
73 inline ObjectHeader *ObjectHeader::GetFieldObject(const Field &field) const in GetFieldObject()
80 inline void ObjectHeader::SetFieldObject(const Field &field, ObjectHeader *value) in SetFieldObject()
87 inline ObjectHeader *ObjectHeader::GetFieldObject(ManagedThread *thread, const Field &field) in GetFieldObject()
[all …]
Dobject_header.h57 class ObjectHeader {
119 return sizeof(ObjectHeader); in ObjectHeaderSize()
124 return MEMBER_OFFSET(ObjectHeader, classWord_); in GetClassOffset()
129 return MEMBER_OFFSET(ObjectHeader, markWord_); in GetMarkWordOffset()
188 ObjectHeader *GetFieldObject(int offset) const;
191 void SetFieldObject(size_t offset, ObjectHeader *value);
200 ObjectHeader *GetFieldObject(const Field &field) const;
203 void SetFieldObject(const Field &field, ObjectHeader *value);
207 ObjectHeader *GetFieldObject(ManagedThread *thread, const Field &field);
210 void SetFieldObject(ManagedThread *thread, const Field &field, ObjectHeader *value);
[all …]
Dobject_accessor-inl.h31 inline ObjectHeader *ObjectAccessor::GetObject(const void *obj, size_t offset) in GetObject()
35 return reinterpret_cast<ObjectHeader *>(Get<object_pointer_type, is_volatile>(obj, offset)); in GetObject()
37 return Get<ObjectHeader *, is_volatile>(obj, offset); in GetObject()
43 inline void ObjectAccessor::SetObject(void *obj, size_t offset, ObjectHeader *value) in SetObject()
50 ObjectHeader *pre_val = GetObject<is_volatile, is_dyn>(obj, offset); in SetObject()
57 Set<ObjectHeader *, is_volatile>(obj, offset, value); in SetObject()
67 Set<ObjectHeader *, is_volatile>(obj, offset, value); in SetObject()
75 inline ObjectHeader *ObjectAccessor::GetObject([[maybe_unused]] const ManagedThread *thread, const … in GetObject()
80 return reinterpret_cast<ObjectHeader *>(Get<object_pointer_type, is_volatile>(obj, offset)); in GetObject()
82 return Get<ObjectHeader *, is_volatile>(obj, offset); in GetObject()
[all …]
Dthread-inl.h62 inline void ManagedThread::PushHandleScope<ObjectHeader *>(HandleScope<ObjectHeader *> *handle_scop…
68 inline HandleScope<ObjectHeader *> *ManagedThread::PopHandleScope<ObjectHeader *>()
70 HandleScope<ObjectHeader *> *scope = object_header_handle_scopes_.back();
76 inline HandleScope<ObjectHeader *> *ManagedThread::GetTopScope<ObjectHeader *>() const
85 inline HandleStorage<ObjectHeader *> *ManagedThread::GetHandleStorage<ObjectHeader *>() const
Dobject_accessor.h25 class ObjectHeader; variable
44 static ObjectHeader *GetObject(const void *obj, size_t offset);
47 static void SetObject(void *obj, size_t offset, ObjectHeader *value);
56 static ObjectHeader *GetFieldObject(const void *obj, const Field &field);
59 static void SetFieldObject(void *obj, const Field &field, ObjectHeader *value);
63 static ObjectHeader *GetObject(const ManagedThread *thread, const void *obj, size_t offset);
66 … static void SetObject(const ManagedThread *thread, void *obj, size_t offset, ObjectHeader *value);
69 static ObjectHeader *GetFieldObject(ManagedThread *thread, const void *obj, const Field &field);
72 …static void SetFieldObject(ManagedThread *thread, void *obj, const Field &field, ObjectHeader *val…
81 … static ObjectHeader *GetFieldObject(const void *obj, int offset, std::memory_order memory_order);
[all …]
/ark/runtime_core/runtime/mem/
Dobject_helpers.h32 class ObjectHeader; variable
49 PandaString GetDebugInfoAboutObject(const ObjectHeader *header);
51 void DumpObject(ObjectHeader *object_header, std::basic_ostream<char, std::char_traits<char>> *o_st…
55 [[nodiscard]] ObjectHeader *GetForwardAddress(ObjectHeader *object_header);
63 static void TraverseAllObjects(ObjectHeader *object_header,
64 … const std::function<void(ObjectHeader *, ObjectHeader *)> &obj_visitor);
67 …static void TraverseObject(ObjectHeader *object_header, BaseClass *base_cls, const FieldVisitor &f…
70 static void TraverseArray(ObjectHeader *object_header, BaseClass *base_cls,
73 static void UpdateRefsToMovedObjects(PandaVM *vm, ObjectHeader *object, BaseClass *base_cls);
78 static void TraverseAllObjects(ObjectHeader *object_header,
[all …]
Dobject_helpers.cpp38 auto *obj_header = static_cast<const ObjectHeader *>(mem); in GetObjectSize()
59 PandaString GetDebugInfoAboutObject(const ObjectHeader *header) in GetDebugInfoAboutObject()
67 void DumpObject([[maybe_unused]] ObjectHeader *object_header, in DumpObject()
101 ObjectHeader *field_object = object_header->GetFieldObject(offset); in DumpObject()
168 std::function<void(Class *, ObjectHeader *, const Field *, ObjectHeader *)> field_dump( in DumpClass()
169 … [o_stream]([[maybe_unused]] Class *kls, [[maybe_unused]] ObjectHeader *obj, const Field *field, in DumpClass()
170 ObjectHeader *field_object) { in DumpClass()
177 ObjectHeader *cls_object = cls->GetManagedObject(); in DumpClass()
183 ObjectHeader *GetForwardAddress(ObjectHeader *object_header) in GetForwardAddress()
188 return reinterpret_cast<ObjectHeader *>(addr); in GetForwardAddress()
[all …]
Dobject_helpers-inl.h32 ALWAYS_INLINE void operator()([[maybe_unused]] Class *cls, ObjectHeader *field_object, in operator()
50 ALWAYS_INLINE void operator()([[maybe_unused]] ObjectHeader *object, ObjectHeader *field_object, in operator()
68 ALWAYS_INLINE void operator()([[maybe_unused]] ObjectHeader *array_object, in operator()
69 … [[maybe_unused]] array_size_t element_index, ObjectHeader *element_object) const in operator()
84 void TraverseFields(const Span<Field> &fields, Class *cls, ObjectHeader *object_header, in TraverseFields()
92 ObjectHeader *field_object = object_header->GetFieldObject(offset); in TraverseFields()
122 void GCStaticObjectHelpers::TraverseObject(ObjectHeader *object, BaseClass *base_cls, const FieldVi… in TraverseObject()
146 void GCStaticObjectHelpers::TraverseArray(ObjectHeader *object, BaseClass *base_cls, in TraverseArray()
156 auto *array_element = array_object->Get<ObjectHeader *>(i); in TraverseArray()
164 void GCDynamicObjectHelpers::TraverseObject(ObjectHeader *object, BaseClass *base_cls, in TraverseObject()
[all …]
/ark/runtime_core/runtime/
Dmonitor.h29 class ObjectHeader; variable
97 static Monitor::State MonitorEnter(ObjectHeader *obj, bool trylock = false);
99 static Monitor::State MonitorExit(ObjectHeader *obj);
101 static Monitor::State JniMonitorEnter(ObjectHeader *obj);
103 static Monitor::State JniMonitorExit(ObjectHeader *obj);
115 static State Wait(ObjectHeader *obj, ThreadStatus status, uint64_t timeout, uint64_t nanos,
118 static State Notify(ObjectHeader *obj);
120 static State NotifyAll(ObjectHeader *obj);
134 static bool Inflate(ObjectHeader *obj, MTManagedThread *thread);
143 static bool Deflate(ObjectHeader *obj);
[all …]
Dobject_header.cpp30 ObjectHeader *ObjectHeader::CreateObject(panda::BaseClass *klass, bool non_movable) in CreateObject()
44 ObjectHeader *obj {nullptr}; in CreateObject()
54 ObjectHeader *ObjectHeader::Create(BaseClass *klass) in Create()
60 ObjectHeader *ObjectHeader::CreateNonMovable(BaseClass *klass) in CreateNonMovable()
65 bool ObjectHeader::AtomicSetMark(MarkWord old_mark_word, MarkWord new_mark_word) in AtomicSetMark()
73 uint32_t ObjectHeader::GetHashCodeFromMonitor(Monitor *monitor_p) in GetHashCodeFromMonitor()
87 uint32_t ObjectHeader::GetHashCode() in GetHashCode()
127 ObjectHeader *ObjectHeader::Clone(ObjectHeader *src) in Clone()
130 return ObjectHeader::ShallowCopy(src); in Clone()
133 ObjectHeader *ObjectHeader::ShallowCopy(ObjectHeader *src) in ShallowCopy()
[all …]
/ark/runtime_core/runtime/mem/gc/gen-gc/
Dgen-gc.h39 void InitGCBits(panda::ObjectHeader *obj_header) override;
41 void InitGCBitsForAllocationInTLAB(panda::ObjectHeader *obj_header) override;
45 void MarkReferences(PandaStackTL<ObjectHeader *> *references, GCPhase gc_phase) override;
47 void MarkObject(ObjectHeader *object_header) override;
49 bool MarkObjectIfNotMarked(ObjectHeader *object_header) override;
51 void UnMarkObject(ObjectHeader *object_header) override;
77 void MarkYoungStack(PandaStackTL<ObjectHeader *> *objects_stack);
85 …void MarkRoots(PandaStackTL<ObjectHeader *> *objects_stack, CardTableVisitFlag visit_card_table_ro…
93 void InitialMark(PandaStackTL<ObjectHeader *> *objects_stack);
99 NO_THREAD_SAFETY_ANALYSIS void ConcurrentMark(PandaStackTL<ObjectHeader *> *objects_stack,
[all …]
Dgen-gc.cpp113 void GenGC<LanguageConfig>::InitGCBits(panda::ObjectHeader *obj_header) in InitGCBits()
130 void GenGC<LanguageConfig>::InitGCBitsForAllocationInTLAB(panda::ObjectHeader *obj_header) in InitGCBitsForAllocationInTLAB()
178 PandaStackTL<ObjectHeader *> objects_stack( in MarkYoung()
207 …ObjectChecker tenured_range_young_object_checker = [&young_mr](const ObjectHeader *object_header) … in MarkYoung()
211 …ObjectChecker from_object_checker = []([[maybe_unused]] const ObjectHeader *object_header) -> bool… in MarkYoung()
227 void GenGC<LanguageConfig>::MarkYoungStack(PandaStackTL<ObjectHeader *> *stack) in MarkYoungStack()
255 PandaVector<ObjectHeader *> moved_objects; in CollectYoungAndMove()
279 std::function<void(ObjectHeader * object_header)> move_visitor( in CollectYoungAndMove()
281 &young_delete_count](ObjectHeader *object_header) -> void { in CollectYoungAndMove()
287 … auto dst = reinterpret_cast<ObjectHeader *>(object_allocator->AllocateTenured(size)); in CollectYoungAndMove()
[all …]
/ark/runtime_core/runtime/mem/gc/g1/
Dg1-gc.h42 void InitGCBits(panda::ObjectHeader *obj_header) override;
44 void InitGCBitsForAllocationInTLAB(panda::ObjectHeader *object) override;
48 void MarkReferences(PandaStackTL<ObjectHeader *> *references, GCPhase gc_phase) override;
50 void MarkObject(ObjectHeader *object_header) override;
52 bool MarkObjectIfNotMarked(ObjectHeader *object_header) override;
54 void UnMarkObject(ObjectHeader *object_header) override;
69 bool IsInCollectibleSet(ObjectHeader *obj_header) const;
86 void MarkYoungStack(PandaStackTL<ObjectHeader *> *objects_stack);
94 …void MarkRoots(PandaStackTL<ObjectHeader *> *objects_stack, CardTableVisitFlag visit_card_table_ro…
102 void InitialMark(PandaStackTL<ObjectHeader *> *objects_stack);
[all …]
/ark/runtime_core/runtime/mem/gc/dynamic/
Dgc_dynamic_impl.cpp23 …andleObject<LANG_TYPE_DYNAMIC, false>(PandaStackTL<ObjectHeader *> *objects_stack, const ObjectHea… in HandleObject()
29 ObjectHeader *dyn_class = cls->GetManagedObject(); in HandleObject()
34 auto obj_body_size = cls->GetObjectSize() - ObjectHeader::ObjectHeaderSize(); in HandleObject()
37 size_t addr = reinterpret_cast<uintptr_t>(object) + ObjectHeader::ObjectHeaderSize(); in HandleObject()
46 ObjectHeader *object_header = tagged_value.GetHeapObject(); in HandleObject()
55 void GC::HandleClass<LANG_TYPE_DYNAMIC, false>(PandaStackTL<ObjectHeader *> *objects_stack, in HandleClass()
78 ObjectHeader *object_header = tagged_value.GetHeapObject(); in HandleClass()
86 void GC::HandleArrayClass<LANG_TYPE_DYNAMIC, false>(PandaStackTL<ObjectHeader *> *objects_stack, in HandleArrayClass()
104 ObjectHeader *element_object = array_element.GetHeapObject(); in HandleArrayClass()
112 …arkInstance<LANG_TYPE_DYNAMIC, false>(PandaStackTL<ObjectHeader *> *objects_stack, const ObjectHea… in MarkInstance()
/ark/runtime_core/runtime/mem/gc/stw-gc/
Dstw-gc.h39 void InitGCBits(panda::ObjectHeader *object) override;
41 void InitGCBitsForAllocationInTLAB(panda::ObjectHeader *obj_header) override;
49 void MarkStack(PandaStackTL<ObjectHeader *> *stack);
53 bool IsMarked(const ObjectHeader *object) const override;
54 void MarkObject(ObjectHeader *object) override;
55 void UnMarkObject(ObjectHeader *object_header) override;
56 void MarkReferences(PandaStackTL<ObjectHeader *> *references, GCPhase gc_phase) override;
Dstw-gc.cpp74 PandaStackTL<ObjectHeader *> objects_stack( in Mark()
102 void StwGC<LanguageConfig>::MarkStack(PandaStackTL<ObjectHeader *> *stack) in MarkStack()
129 … string_table->Sweep([this](ObjectHeader *object) { return this->marker_.MarkChecker(object); }); in SweepStringTable()
132 …string_table->Sweep([this](ObjectHeader *object) { return this->marker_.template MarkChecker<true>… in SweepStringTable()
144 …this->GetObjectAllocator()->Collect([this](ObjectHeader *object) { return this->marker_.MarkChecke… in Sweep()
152 … [this](ObjectHeader *object) { return this->marker_.template MarkChecker<true>(object); }, in Sweep()
184 void StwGC<LanguageConfig>::InitGCBits(panda::ObjectHeader *object) in InitGCBits()
198 void StwGC<LanguageConfig>::InitGCBitsForAllocationInTLAB([[maybe_unused]] panda::ObjectHeader *obj… in InitGCBitsForAllocationInTLAB()
211 void StwGC<LanguageConfig>::MarkObject(ObjectHeader *object) in MarkObject()
223 void StwGC<LanguageConfig>::UnMarkObject([[maybe_unused]] ObjectHeader *object_header) in UnMarkObject()
[all …]
/ark/runtime_core/runtime/mem/gc/
Dgc.h141 using UpdateRefInObject = std::function<void(ObjectHeader *)>;
147 void MarkObjectHeader(ObjectHeader *object) const in MarkObjectHeader()
158 bool IsObjectHeaderMarked(ObjectHeader *object) const in IsObjectHeaderMarked()
168 bool MarkIfNotMarked(ObjectHeader *object) const in MarkIfNotMarked()
193 void Mark(ObjectHeader *object) const in Mark()
216 void UnMark(ObjectHeader *object) const in UnMark()
238 bool IsMarked(const ObjectHeader *object) const in IsMarked()
252 ObjectStatus MarkChecker(const ObjectHeader *object) const in MarkChecker()
380 virtual void InitGCBits(panda::ObjectHeader *obj_header) = 0;
385 virtual void InitGCBitsForAllocationInTLAB(panda::ObjectHeader *obj_header) = 0;
[all …]
Dgc_root.h74 GCRoot(RootType type, ObjectHeader *obj);
75 GCRoot(RootType type, ObjectHeader *from_object, ObjectHeader *obj);
78 ObjectHeader *GetObjectHeader() const;
79 ObjectHeader *GetFromObjectHeader() const;
93 ObjectHeader *from_object_;
94 ObjectHeader *object_;
/ark/runtime_core/runtime/include/coretypes/
Darray.h49 class Array : public ObjectHeader {
53 static Array *Cast(ObjectHeader *object) in Cast()
106 ObjectHeader *GetObject(int offset) const;
109 void SetObject(size_t offset, ObjectHeader *value);
118 ObjectHeader *GetObject(size_t offset, std::memory_order memory_order) const;
121 void SetObject(size_t offset, ObjectHeader *value, std::memory_order memory_order);
127 bool CompareAndSetObject(size_t offset, ObjectHeader *old_value, ObjectHeader *new_value,
134ObjectHeader *CompareAndExchangeObject(size_t offset, ObjectHeader *old_value, ObjectHeader *new_v…
141ObjectHeader *GetAndSetObject(size_t offset, ObjectHeader *value, std::memory_order memory_order);
198 static_assert(Array::GetLengthOffset() == sizeof(ObjectHeader));
Ddyn_objects.h29 class DynClass : public ObjectHeader {
31 static DynClass *Cast(ObjectHeader *object) in Cast()
43 DynClass() : ObjectHeader() {} in DynClass()
52 class DynObject : public ObjectHeader {
54 static DynObject *Cast(ObjectHeader *object) in Cast()
Darray-inl.h44 inline ObjectHeader *Array::GetObject(int offset) const in GetObject()
51 inline void Array::SetObject(size_t offset, ObjectHeader *value) in SetObject()
70 inline ObjectHeader *Array::GetObject(size_t offset, std::memory_order memory_order) const in GetObject()
77 inline void Array::SetObject(size_t offset, ObjectHeader *value, std::memory_order memory_order) in SetObject()
93 inline bool Array::CompareAndSetObject(size_t offset, ObjectHeader *old_value, ObjectHeader *new_va… in CompareAndSetObject()
113 inline ObjectHeader *Array::CompareAndExchangeObject(size_t offset, ObjectHeader *old_value, Object… in CompareAndExchangeObject()
130 inline ObjectHeader *Array::GetAndSetObject(size_t offset, ObjectHeader *value, std::memory_order m… in GetAndSetObject()
164 …constexpr bool IS_REF = std::is_pointer_v<T> && std::is_base_of_v<ObjectHeader, std::remove_pointe… in Set()
185 …constexpr bool IS_REF = std::is_pointer_v<T> && std::is_base_of_v<ObjectHeader, std::remove_pointe… in Get()
204 …constexpr bool IS_REF = std::is_pointer_v<T> && std::is_base_of_v<ObjectHeader, std::remove_pointe… in Set()
[all …]
/ark/runtime_core/runtime/mem/refstorage/
Dreference_storage.h26 class ObjectHeader; variable
53 [[nodiscard]] static Reference *NewStackRef(const ObjectHeader *const *object_ptr) in NewStackRef()
62 [[nodiscard]] Reference *NewRef(const ObjectHeader *object, Reference::ObjectType object_type);
66 [[nodiscard]] ObjectHeader *GetObject(const Reference *ref);
95 PandaVector<ObjectHeader *> GetAllObjects();
120 ObjectHeader *FindLocalObject(const Reference *ref);
167 : rs_(rhs.rs_), ref_(rs_->NewRef(reinterpret_cast<ObjectHeader *>(object), type))
174 : rs_(rs), ref_(rs_->NewRef(reinterpret_cast<ObjectHeader *>(object), type)) in rs_()
191 ref_ = rs_->NewRef(reinterpret_cast<ObjectHeader *>(object), type);
Dref_block.cpp31 Reference *RefBlock::AddRef(const ObjectHeader *object, Reference::ObjectType type) in AddRef()
48 auto index = (ref_ptr - block_ptr) / sizeof(ObjectPointer<ObjectHeader>); in Remove()
63 auto *obj = object_pointer.ReinterpretCast<ObjectHeader *>(); in VisitObjects()
81 auto *object = object_pointer.ReinterpretCast<ObjectHeader *>(); in UpdateMovedRefs()
82 auto obj = reinterpret_cast<ObjectHeader *>(object); in UpdateMovedRefs()
85 ObjectHeader *forward_address = GetForwardAddress(obj); in UpdateMovedRefs()
86 block->refs_[index] = reinterpret_cast<ObjectHeader *>(forward_address); in UpdateMovedRefs()
125 void RefBlock::Set(uint8_t index, const ObjectHeader *object) in Set()
/ark/runtime_core/runtime/tooling/
Dpt_reference_private.h22 class ObjectHeader; variable
29 PtLocalReference *PtCreateLocalReference(ObjectHeader *objectHeader);
32 ObjectHeader *PtGetObjectHeaderByReference(const PtReference *ref);
34 PtGlobalReference *PtCreateGlobalReference(const ObjectHeader *objectHeader);

12345678