Lines Matching refs:FreeChunk

75 class FreeChunk;
78 struct FreeChunkData : SplayTreeLink<FreeChunk> {
80 FreeChunk* Next() const
85 FreeChunk** NextLink()
91 FreeChunk* fNext;
95 class FreeChunk : public Chunk, public FreeChunkData {
101 FreeChunk* Split(size_t splitSize);
102 bool IsTouching(FreeChunk* link);
103 FreeChunk* Join(FreeChunk* link);
106 static FreeChunk* SetToAllocated(void* allocated);
118 FreeChunkKey(const FreeChunk* chunk)
125 int Compare(const FreeChunk* chunk) const
138 const FreeChunk* fChunk;
144 typedef FreeChunk NodeType;
146 static FreeChunkKey GetKey(const FreeChunk* node)
151 static SplayTreeLink<FreeChunk>* GetLink(FreeChunk* node)
156 static int Compare(const FreeChunkKey& key, const FreeChunk* node)
161 static FreeChunk** GetListLink(FreeChunk* node)
295 FreeChunk::SetTo(size_t size)
306 FreeChunk::Size() const
313 will no longer be a valid FreeChunk object; only its fSize will be valid.
315 FreeChunk*
316 FreeChunk::Split(size_t splitSize)
320 FreeChunk* chunk = (FreeChunk*)((addr_t)AllocatedAddress() + splitSize);
335 FreeChunk::IsTouching(FreeChunk* chunk)
347 doesn't work correctly. Use FreeChunk::IsTouching()
350 FreeChunk*
351 FreeChunk::Join(FreeChunk* chunk)
368 FreeChunk::AllocatedAddress() const
374 FreeChunk*
375 FreeChunk::SetToAllocated(void* allocated)
377 return static_cast<FreeChunk*>((FreeChunkData*)allocated);
415 FreeChunk* chunk = (FreeChunk*)base;
435 FreeChunk* chunk = sFreeChunkTree.FindMin();
472 FreeChunk* chunk = sFreeChunkTree.FindClosest(FreeChunkKey(size), true,
489 if (chunk->Size() >= size + align(sizeof(FreeChunk))) {
490 FreeChunk* freeChunk = chunk->Split(size);
516 FreeChunk* oldChunk = FreeChunk::SetToAllocated(oldBuffer);
575 FreeChunk* freedChunk = FreeChunk::SetToAllocated(allocated);
583 FreeChunk* chunk = sFreeChunkTree.FindMin();
596 FreeChunk* chunk = sFreeChunkTree.FindMin();
600 FreeChunk* nextChunk = chunk->Next();