Lines Matching refs:Frontier
132 // chunks. Marks those chunks with |tag| and adds them to |frontier|.
136 // so |frontier| = 0.
138 Frontier *frontier,
168 if (frontier)
169 frontier->push_back(chunk);
174 Frontier *frontier = reinterpret_cast<Frontier *>(arg);
175 ScanRangeForPointers(begin, end, frontier, "FAKE STACK", kReachable);
180 Frontier *frontier) {
207 ScanRangeForPointers(registers_begin, registers_end, frontier,
221 ScanRangeForPointers(stack_begin, stack_end, frontier, "STACK",
223 ForEachExtraStackRange(os_id, ForEachExtraStackRangeCb, frontier);
229 ScanRangeForPointers(tls_begin, tls_end, frontier, "TLS", kReachable);
236 ScanRangeForPointers(tls_begin, cache_begin, frontier, "TLS",
239 ScanRangeForPointers(cache_end, tls_end, frontier, "TLS", kReachable);
245 static void ProcessRootRegion(Frontier *frontier, uptr root_begin,
260 ScanRangeForPointers(intersection_begin, intersection_end, frontier,
266 static void ProcessRootRegions(Frontier *frontier) {
272 ProcessRootRegion(frontier, begin_addr, begin_addr + region.size);
276 static void FloodFillTag(Frontier *frontier, ChunkTag tag) {
277 while (frontier->size()) {
278 uptr next_chunk = frontier->back();
279 frontier->pop_back();
281 ScanRangeForPointers(next_chunk, next_chunk + m.requested_size(), frontier,
293 /* frontier */ nullptr, "HEAP", kIndirectlyLeaked);
298 // frontier.
306 reinterpret_cast<Frontier *>(arg)->push_back(chunk);
312 // Holds the flood fill frontier.
313 Frontier frontier(1);
315 ForEachChunk(CollectIgnoredCb, &frontier);
316 ProcessGlobalRegions(&frontier);
317 ProcessThreads(suspended_threads, &frontier);
318 ProcessRootRegions(&frontier);
319 FloodFillTag(&frontier, kReachable);
325 CHECK_EQ(0, frontier.size());
326 ProcessPlatformSpecificAllocations(&frontier);
327 FloodFillTag(&frontier, kReachable);