Home | History | Annotate | Download | only in base

Lines Matching refs:freelist

75     // Next two fields: in unallocated blocks: freelist skiplist data
88 // A trivial skiplist implementation. This is used to keep the freelist
171 RAW_CHECK(e == found, "element not in freelist");
188 SpinLock mu; // protects freelist, allocation_count,
190 AllocList freelist; // head of free list; sorted by addr (under mu)
268 while (arena->roundup < sizeof (arena->freelist.header)) {
274 arena->freelist.header.size = 0;
275 arena->freelist.header.magic =
276 Magic(kMagicUnallocated, &arena->freelist.header);
277 arena->freelist.header.arena = arena;
278 arena->freelist.levels = 0;
279 memset(arena->freelist.next, 0, sizeof (arena->freelist.next));
321 while (arena->freelist.next[0] != 0) {
322 AllocList *region = arena->freelist.next[0];
324 arena->freelist.next[0] = region->next[0];
357 // that the freelist is in the correct order, that it
369 if (prev != &arena->freelist) {
370 RAW_CHECK(prev < next, "unordered freelist");
372 reinterpret_cast<char *>(next), "malformed freelist");
388 LLA_SkiplistDelete(&arena->freelist, n, prev);
389 LLA_SkiplistDelete(&arena->freelist, a, prev);
391 LLA_SkiplistInsert(&arena->freelist, a, prev);
406 LLA_SkiplistInsert(&arena->freelist, f, prev);
445 if (i < arena->freelist.levels) { // potential blocks exist
446 AllocList *before = &arena->freelist; // predecessor of s
478 LLA_SkiplistDelete(&arena->freelist, s, prev); // remove from free list