void Heap::deallocateSmallLine(std::lock_guard<StaticMutex>& lock, SmallLine* line) { BASSERT(!line->refCount(lock)); SmallPage* page = SmallPage::get(line); size_t refCount = page->refCount(lock); page->deref(lock); switch (refCount) { case SmallPage::lineCount: { // First free line in the page. m_smallPagesWithFreeLines[page->sizeClass()].push(page); break; } case 1: { // Last free line in the page. m_smallPages.push(page); m_scavenger.run(); break; } } }