Lines Matching refs:object

27 #include "src/heap/weak-object-worklists.h"
64 // Helper class for storing in-object slot addresses and values.
104 static V8_INLINE T Cast(HeapObject object) {
105 return T::cast(object);
112 int VisitJSObject(Map map, JSObject object) {
113 return VisitJSObjectSubclass(map, object);
116 int VisitJSObjectFast(Map map, JSObject object) {
117 return VisitJSObjectSubclassFast(map, object);
120 int VisitJSExternalObject(Map map, JSExternalObject object) {
121 return VisitJSObjectSubclass(map, object);
125 int VisitWasmInstanceObject(Map map, WasmInstanceObject object) {
126 return VisitJSObjectSubclass(map, object);
128 int VisitWasmSuspenderObject(Map map, WasmSuspenderObject object) {
129 return VisitJSObjectSubclass(map, object);
133 int VisitJSWeakCollection(Map map, JSWeakCollection object) {
134 return VisitJSObjectSubclass(map, object);
137 int VisitJSFinalizationRegistry(Map map, JSFinalizationRegistry object) {
138 return VisitJSObjectSubclass(map, object);
141 int VisitConsString(Map map, ConsString object) {
142 return VisitFullyWithSnapshot(map, object);
145 int VisitSlicedString(Map map, SlicedString object) {
146 return VisitFullyWithSnapshot(map, object);
149 int VisitThinString(Map map, ThinString object) {
150 return VisitFullyWithSnapshot(map, object);
153 int VisitSeqOneByteString(Map map, SeqOneByteString object) {
154 if (!ShouldVisit(object)) return 0;
155 VisitMapPointer(object);
156 return SeqOneByteString::SizeFor(object.length(kAcquireLoad));
159 int VisitSeqTwoByteString(Map map, SeqTwoByteString object) {
160 if (!ShouldVisit(object)) return 0;
161 VisitMapPointer(object);
162 return SeqTwoByteString::SizeFor(object.length(kAcquireLoad));
181 bool ShouldVisit(HeapObject object) {
182 return marking_state_.GreyToBlack(object);
185 bool ShouldVisitUnaccounted(HeapObject object) {
186 return marking_state_.GreyToBlackUnaccounted(object);
190 // Helper class for collecting in-object slot addresses and values.
204 Object object = p.Relaxed_Load(cage_base());
205 slot_snapshot_->add(p, object);
246 int VisitJSObjectSubclassFast(Map map, T object) {
248 return VisitJSObjectSubclass<T, TBodyDescriptor>(map, object);
252 int VisitJSObjectSubclass(Map map, T object) {
253 if (!ShouldVisit(object)) return 0;
254 int size = TBodyDescriptor::SizeOf(map, object);
258 this->VisitMapPointer(object);
261 TBodyDescriptor::IterateBody(map, object, used_size, this);
266 int VisitLeftTrimmableArray(Map map, T object) {
269 Object length = object.unchecked_length(kAcquireLoad);
272 if (!ShouldVisitUnaccounted(object)) return 0;
277 marking_state_.IncrementLiveBytes(MemoryChunk::FromHeapObject(object),
279 VisitMapPointer(object);
280 T::BodyDescriptor::IterateBody(map, object, size, this);
287 Object object = snapshot.value(i);
288 DCHECK(!HasWeakHeapObjectTag(object));
289 if (!object.IsHeapObject()) continue;
290 HeapObject heap_object = HeapObject::cast(object);
301 int VisitFullyWithSnapshot(Map map, T object) {
303 int size = TBodyDescriptor::SizeOf(map, object);
305 MakeSlotSnapshot<T, TBodyDescriptor>(map, object, size);
306 if (!ShouldVisit(object)) return 0;
307 VisitPointersInSnapshot(object, snapshot);
312 const SlotSnapshot& MakeSlotSnapshot(Map map, T object, int size) {
315 visitor.VisitPointer(object, object.map_slot());
316 TBodyDescriptor::IterateBody(map, object, size, &visitor);
321 void RecordSlot(HeapObject object, TSlot slot, HeapObject target) {
322 MarkCompactCollector::RecordSlot(object, slot, target);
364 ConsString ConcurrentMarkingVisitor::Cast(HeapObject object) {
365 return ConsString::unchecked_cast(object);
369 SlicedString ConcurrentMarkingVisitor::Cast(HeapObject object) {
370 return SlicedString::unchecked_cast(object);
374 ThinString ConcurrentMarkingVisitor::Cast(HeapObject object) {
375 return ThinString::unchecked_cast(object);
379 SeqOneByteString ConcurrentMarkingVisitor::Cast(HeapObject object) {
380 return SeqOneByteString::unchecked_cast(object);
384 SeqTwoByteString ConcurrentMarkingVisitor::Cast(HeapObject object) {
385 return SeqTwoByteString::unchecked_cast(object);
390 FixedArray ConcurrentMarkingVisitor::Cast(HeapObject object) {
391 return FixedArray::unchecked_cast(object);
397 StrongDescriptorArray ConcurrentMarkingVisitor::Cast(HeapObject object) {
398 return StrongDescriptorArray::unchecked_cast(DescriptorArray::cast(object));
448 // Concurrent marking requires atomic object field writes.
502 HeapObject object;
503 if (!local_marking_worklists.Pop(&object)) {
523 Address addr = object.address();
527 local_marking_worklists.PushOnHold(object);
529 Map map = object.map(isolate, kAcquireLoad);
532 if (native_context_inferrer.Infer(isolate, map, object, &context)) {
536 size_t visited_size = visitor.Visit(map, object);
539 local_marking_worklists.Context(), map, object, visited_size);