Lines Matching defs:info

201   // Return the number of pages that the allocation info covers.
217 // Finds and returns the next non free allocation info after ourself.
224 // Returns the previous free allocation info by using the prev_free_ member to figure out
226 // previous allocation info is free.
231 // Returns the address of the object associated with this allocation info.
252 // can also find the iterator for any allocation info pointer.
262 size_t FreeListSpace::GetSlotIndexForAllocationInfo(const AllocationInfo* info) const {
263 DCHECK_GE(info, allocation_info_);
264 DCHECK_LT(info, reinterpret_cast<AllocationInfo*>(allocation_info_map_->End()));
265 return info - allocation_info_;
303 allocation_info_map_.reset(MemMap::MapAnonymous("large object free list space allocation info map",
306 CHECK(allocation_info_map_.get() != nullptr) << "Failed to allocate allocation info map"
331 void FreeListSpace::RemoveFreePrev(AllocationInfo* info) {
332 CHECK_GT(info->GetPrevFree(), 0U);
333 auto it = free_blocks_.lower_bound(info);
335 CHECK_EQ(*it, info);
344 AllocationInfo* info = GetAllocationInfoForAddress(reinterpret_cast<uintptr_t>(obj));
345 DCHECK(!info->IsFree());
346 const size_t allocation_size = info->ByteSize();
349 info->SetByteSize(allocation_size, true); // Mark as free.
351 AllocationInfo* next_info = info->GetNextInfo();
354 size_t prev_free_bytes = info->GetPrevFreeBytes();
359 RemoveFreePrev(info);
360 info = info->GetPrevFreeInfo();
361 // The previous allocation info must not be free since we are supposed to always coalesce.
362 DCHECK_EQ(info->GetPrevFreeBytes(), 0U) << "Previous allocation was free";
373 // Next next info can't be free since we always coalesce.
384 info->SetByteSize(new_free_size, true);
385 DCHECK_EQ(info->GetNextInfo(), new_free_info);
400 AllocationInfo* info = GetAllocationInfoForAddress(reinterpret_cast<uintptr_t>(obj));
401 DCHECK(!info->IsFree());
402 size_t alloc_size = info->ByteSize();
420 AllocationInfo* info = *it;
422 // Fit our object in the previous allocation info free space.
423 new_info = info->GetPrevFreeInfo();
424 // Remove the newly allocated block from the info and update the prev_free_.
425 info->SetPrevFreeBytes(info->GetPrevFreeBytes() - allocation_size);
426 if (info->GetPrevFreeBytes() > 0) {
427 AllocationInfo* new_free = info - info->GetPrevFree();
429 new_free->SetByteSize(info->GetPrevFreeBytes(), true);
431 free_blocks_.insert(info);