• Home
  • Raw
  • Download

Lines Matching refs:chunk

31   static void Insert(SlotSet* slot_set, MemoryChunk* chunk, Address slot_addr) {  in Insert()  argument
32 DCHECK(chunk->Contains(slot_addr)); in Insert()
33 uintptr_t offset = slot_addr - chunk->address(); in Insert()
38 static int Iterate(SlotSet* slot_set, MemoryChunk* chunk, Callback callback, in Iterate() argument
42 slots += slot_set->Iterate(chunk->address(), 0, chunk->buckets(), in Iterate()
48 static void Remove(SlotSet* slot_set, MemoryChunk* chunk, Address slot_addr) { in Remove() argument
50 uintptr_t offset = slot_addr - chunk->address(); in Remove()
55 static void RemoveRange(SlotSet* slot_set, MemoryChunk* chunk, Address start, in RemoveRange() argument
58 uintptr_t start_offset = start - chunk->address(); in RemoveRange()
59 uintptr_t end_offset = end - chunk->address(); in RemoveRange()
62 static_cast<int>(end_offset), chunk->buckets(), in RemoveRange()
67 static void CheckNoneInRange(SlotSet* slot_set, MemoryChunk* chunk, in CheckNoneInRange() argument
70 size_t start_bucket = SlotSet::BucketForSlot(start - chunk->address()); in CheckNoneInRange()
75 SlotSet::BucketForSlot(end - chunk->address() - kTaggedSize) + 1; in CheckNoneInRange()
77 chunk->address(), start_bucket, end_bucket, in CheckNoneInRange()
94 static void Insert(MemoryChunk* chunk, Address slot_addr) { in Insert() argument
95 DCHECK(chunk->Contains(slot_addr)); in Insert()
96 SlotSet* slot_set = chunk->slot_set<type, access_mode>(); in Insert()
98 slot_set = chunk->AllocateSlotSet<type>(); in Insert()
100 RememberedSetOperations::Insert<access_mode>(slot_set, chunk, slot_addr); in Insert()
105 static bool Contains(MemoryChunk* chunk, Address slot_addr) { in Contains() argument
106 DCHECK(chunk->Contains(slot_addr)); in Contains()
107 SlotSet* slot_set = chunk->slot_set<type>(); in Contains()
111 uintptr_t offset = slot_addr - chunk->address(); in Contains()
115 static void CheckNoneInRange(MemoryChunk* chunk, Address start, Address end) { in CheckNoneInRange() argument
116 SlotSet* slot_set = chunk->slot_set<type>(); in CheckNoneInRange()
117 RememberedSetOperations::CheckNoneInRange(slot_set, chunk, start, end); in CheckNoneInRange()
123 static void Remove(MemoryChunk* chunk, Address slot_addr) { in Remove() argument
124 DCHECK(chunk->Contains(slot_addr)); in Remove()
125 SlotSet* slot_set = chunk->slot_set<type>(); in Remove()
126 RememberedSetOperations::Remove(slot_set, chunk, slot_addr); in Remove()
131 static void RemoveRange(MemoryChunk* chunk, Address start, Address end, in RemoveRange() argument
133 SlotSet* slot_set = chunk->slot_set<type>(); in RemoveRange()
134 RememberedSetOperations::RemoveRange(slot_set, chunk, start, end, mode); in RemoveRange()
142 IterateMemoryChunks(heap, [mode, callback](MemoryChunk* chunk) { in Iterate()
143 if (mode == SYNCHRONIZED) chunk->mutex()->Lock(); in Iterate()
144 Iterate(chunk, callback); in Iterate()
145 if (mode == SYNCHRONIZED) chunk->mutex()->Unlock(); in Iterate()
154 MemoryChunk* chunk; in IterateMemoryChunks() local
155 while ((chunk = it.next()) != nullptr) { in IterateMemoryChunks()
156 SlotSet* slot_set = chunk->slot_set<type>(); in IterateMemoryChunks()
158 type == OLD_TO_NEW ? chunk->sweeping_slot_set() : nullptr; in IterateMemoryChunks()
159 TypedSlotSet* typed_slot_set = chunk->typed_slot_set<type>(); in IterateMemoryChunks()
162 chunk->invalidated_slots<type>() != nullptr) { in IterateMemoryChunks()
163 callback(chunk); in IterateMemoryChunks()
175 static int Iterate(MemoryChunk* chunk, Callback callback, in Iterate() argument
177 SlotSet* slot_set = chunk->slot_set<type>(); in Iterate()
178 return RememberedSetOperations::Iterate(slot_set, chunk, callback, mode); in Iterate()
183 MemoryChunk* chunk, Callback callback, in IterateAndTrackEmptyBuckets() argument
185 SlotSet* slot_set = chunk->slot_set<type>(); in IterateAndTrackEmptyBuckets()
189 chunk->possibly_empty_buckets(); in IterateAndTrackEmptyBuckets()
190 slots += slot_set->IterateAndTrackEmptyBuckets(chunk->address(), 0, in IterateAndTrackEmptyBuckets()
191 chunk->buckets(), callback, in IterateAndTrackEmptyBuckets()
193 if (!possibly_empty_buckets->IsEmpty()) empty_chunks.Push(chunk); in IterateAndTrackEmptyBuckets()
198 static void FreeEmptyBuckets(MemoryChunk* chunk) { in FreeEmptyBuckets() argument
200 SlotSet* slot_set = chunk->slot_set<type>(); in FreeEmptyBuckets()
201 if (slot_set != nullptr && slot_set->FreeEmptyBuckets(chunk->buckets())) { in FreeEmptyBuckets()
202 chunk->ReleaseSlotSet<type>(); in FreeEmptyBuckets()
206 static bool CheckPossiblyEmptyBuckets(MemoryChunk* chunk) { in CheckPossiblyEmptyBuckets() argument
208 SlotSet* slot_set = chunk->slot_set<type, AccessMode::NON_ATOMIC>(); in CheckPossiblyEmptyBuckets()
210 slot_set->CheckPossiblyEmptyBuckets(chunk->buckets(), in CheckPossiblyEmptyBuckets()
211 chunk->possibly_empty_buckets())) { in CheckPossiblyEmptyBuckets()
212 chunk->ReleaseSlotSet<type>(); in CheckPossiblyEmptyBuckets()
258 IterateMemoryChunks(heap, [mode, callback](MemoryChunk* chunk) { in IterateTyped()
259 if (mode == SYNCHRONIZED) chunk->mutex()->Lock(); in IterateTyped()
260 IterateTyped(chunk, callback); in IterateTyped()
261 if (mode == SYNCHRONIZED) chunk->mutex()->Unlock(); in IterateTyped()
269 static void IterateTyped(MemoryChunk* chunk, Callback callback) { in IterateTyped() argument
270 TypedSlotSet* slot_set = chunk->typed_slot_set<type>(); in IterateTyped()
275 chunk->ReleaseTypedSlotSet<type>(); in IterateTyped()
284 MemoryChunk* chunk; in ClearAll() local
285 while ((chunk = it.next()) != nullptr) { in ClearAll()
286 chunk->ReleaseSlotSet<OLD_TO_OLD>(); in ClearAll()
287 chunk->ReleaseTypedSlotSet<OLD_TO_OLD>(); in ClearAll()
288 chunk->ReleaseInvalidatedSlots<OLD_TO_OLD>(); in ClearAll()
355 static void Insert(MemoryChunk* chunk, Address slot_addr) { in Insert() argument
356 DCHECK(chunk->Contains(slot_addr)); in Insert()
357 SlotSet* slot_set = chunk->sweeping_slot_set<access_mode>(); in Insert()
359 slot_set = chunk->AllocateSweepingSlotSet(); in Insert()
361 RememberedSetOperations::Insert<access_mode>(slot_set, chunk, slot_addr); in Insert()
364 static void Remove(MemoryChunk* chunk, Address slot_addr) { in Remove() argument
365 DCHECK(chunk->Contains(slot_addr)); in Remove()
366 SlotSet* slot_set = chunk->sweeping_slot_set<AccessMode::ATOMIC>(); in Remove()
367 RememberedSetOperations::Remove(slot_set, chunk, slot_addr); in Remove()
372 static void RemoveRange(MemoryChunk* chunk, Address start, Address end, in RemoveRange() argument
374 SlotSet* slot_set = chunk->sweeping_slot_set(); in RemoveRange()
375 RememberedSetOperations::RemoveRange(slot_set, chunk, start, end, mode); in RemoveRange()
385 static int Iterate(MemoryChunk* chunk, Callback callback, in Iterate() argument
387 SlotSet* slot_set = chunk->sweeping_slot_set(); in Iterate()
388 return RememberedSetOperations::Iterate(slot_set, chunk, callback, mode); in Iterate()