Lines Matching defs:frontier

151 // chunks. Marks those chunks with |tag| and adds them to |frontier|.
155 // so |frontier| = 0.
157 Frontier *frontier,
188 if (frontier)
189 frontier->push_back(chunk);
194 Frontier *frontier = reinterpret_cast<Frontier *>(arg);
195 ScanRangeForPointers(begin, end, frontier, "FAKE STACK", kReachable);
200 Frontier *frontier) {
227 ScanRangeForPointers(registers_begin, registers_end, frontier,
241 ScanRangeForPointers(stack_begin, stack_end, frontier, "STACK",
243 ForEachExtraStackRange(os_id, ForEachExtraStackRangeCb, frontier);
249 ScanRangeForPointers(tls_begin, tls_end, frontier, "TLS", kReachable);
256 ScanRangeForPointers(tls_begin, cache_begin, frontier, "TLS",
259 ScanRangeForPointers(cache_end, tls_end, frontier, "TLS", kReachable);
265 static void ProcessRootRegion(Frontier *frontier, uptr root_begin,
280 ScanRangeForPointers(intersection_begin, intersection_end, frontier,
286 static void ProcessRootRegions(Frontier *frontier) {
292 ProcessRootRegion(frontier, begin_addr, begin_addr + region.size);
296 static void FloodFillTag(Frontier *frontier, ChunkTag tag) {
297 while (frontier->size()) {
298 uptr next_chunk = frontier->back();
299 frontier->pop_back();
301 ScanRangeForPointers(next_chunk, next_chunk + m.requested_size(), frontier,
313 /* frontier */ 0, "HEAP", kIndirectlyLeaked);
318 // frontier.
329 // Holds the flood fill frontier.
330 Frontier frontier(1);
332 ProcessGlobalRegions(&frontier);
333 ProcessThreads(suspended_threads, &frontier);
334 ProcessRootRegions(&frontier);
335 FloodFillTag(&frontier, kReachable);
340 ProcessPlatformSpecificAllocations(&frontier);
341 FloodFillTag(&frontier, kReachable);
344 CHECK_EQ(0, frontier.size());
345 ForEachChunk(CollectIgnoredCb, &frontier);
346 FloodFillTag(&frontier, kIgnored);