Lines Matching refs:frontier
113 // chunks. Marks those chunks with |tag| and adds them to |frontier|.
117 // so |frontier| = 0.
119 Frontier *frontier,
140 if (frontier)
141 frontier->push_back(chunk);
147 Frontier *frontier) {
175 ScanRangeForPointers(registers_begin, registers_end, frontier,
191 ScanRangeForPointers(stack_begin, stack_end, frontier, "STACK",
198 ScanRangeForPointers(tls_begin, tls_end, frontier, "TLS", kReachable);
205 ScanRangeForPointers(tls_begin, cache_begin, frontier, "TLS",
208 ScanRangeForPointers(cache_end, tls_end, frontier, "TLS", kReachable);
214 static void FloodFillTag(Frontier *frontier, ChunkTag tag) {
215 while (frontier->size()) {
216 uptr next_chunk = frontier->back();
217 frontier->pop_back();
219 ScanRangeForPointers(next_chunk, next_chunk + m.requested_size(), frontier,
231 /* frontier */ 0, "HEAP", kIndirectlyLeaked);
236 // frontier.
242 reinterpret_cast<Frontier *>(arg)->push_back(chunk);
247 // Holds the flood fill frontier.
248 Frontier frontier(GetPageSizeCached());
251 ProcessGlobalRegions(&frontier);
252 ProcessThreads(suspended_threads, &frontier);
253 FloodFillTag(&frontier, kReachable);
257 ProcessPlatformSpecificAllocations(&frontier);
258 FloodFillTag(&frontier, kReachable);
262 CHECK_EQ(0, frontier.size());
263 ForEachChunk(CollectIgnoredCb, &frontier);
264 FloodFillTag(&frontier, kIgnored);