163 {
165 for (;;) {
168 intptr_t list_index = chunk / (FreeList::kNumLists + 1);
169 intptr_t size_class_index = chunk % (FreeList::kNumLists + 1);
170 FreeList* freelist = &old_space_->freelists_[list_index];
171
172
173 ASSERT(freelist->top_ == freelist->end_);
174
175 FreeListElement* current = freelist->free_lists_[size_class_index];
176 freelist->free_lists_[size_class_index] = nullptr;
177 while (current != nullptr) {
178 FreeListElement*
next = current->next();
179 if (!
Page::Of(current)->is_evacuation_candidate()) {
180 current->set_next(freelist->free_lists_[size_class_index]);
181 freelist->free_lists_[size_class_index] = current;
182 }
184 }
185 }
186 }
static float next(float f)
static Page * Of(ObjectPtr obj)
RelaxedAtomic< intptr_t > freelist_cursor