Lines Matching refs:FreeChunk

69 class FreeChunk;
72 struct FreeChunkData : SplayTreeLink<FreeChunk> {
74 FreeChunk* Next() const
79 FreeChunk** NextLink()
85 FreeChunk* fNext;
89 class FreeChunk : public Chunk, public FreeChunkData {
95 FreeChunk* Split(size_t splitSize);
96 bool IsTouching(FreeChunk* link);
97 FreeChunk* Join(FreeChunk* link);
100 static FreeChunk* SetToAllocated(void* allocated);
112 FreeChunkKey(const FreeChunk* chunk)
119 int Compare(const FreeChunk* chunk) const
132 const FreeChunk* fChunk;
138 typedef FreeChunk NodeType;
140 static FreeChunkKey GetKey(const FreeChunk* node)
145 static SplayTreeLink<FreeChunk>* GetLink(FreeChunk* node)
150 static int Compare(const FreeChunkKey& key, const FreeChunk* node)
155 static FreeChunk** GetListLink(FreeChunk* node)
177 FreeChunk::SetTo(size_t size)
188 FreeChunk::Size() const
195 will no longer be a valid FreeChunk object; only its fSize will be valid.
197 FreeChunk*
198 FreeChunk::Split(size_t splitSize)
202 FreeChunk* chunk = (FreeChunk*)((addr_t)AllocatedAddress() + splitSize);
217 FreeChunk::IsTouching(FreeChunk* chunk)
229 doesn't work correctly. Use FreeChunk::IsTouching()
232 FreeChunk*
233 FreeChunk::Join(FreeChunk* chunk)
250 FreeChunk::AllocatedAddress() const
256 FreeChunk*
257 FreeChunk::SetToAllocated(void* allocated)
259 return static_cast<FreeChunk*>((FreeChunkData*)allocated);
276 FreeChunk* chunk = (FreeChunk*)base;
314 FreeChunk* chunk = sFreeChunkTree.FindMin();
345 FreeChunk* chunk = sFreeChunkTree.FindClosest(key, true, true);
365 if (chunk->Size() >= size + align(sizeof(FreeChunk))) {
366 FreeChunk* freeChunk = chunk->Split(size);
389 FreeChunk* oldChunk = FreeChunk::SetToAllocated(oldBuffer);
426 FreeChunk* freedChunk = FreeChunk::SetToAllocated(allocated);
431 FreeChunk* chunk = sFreeChunkTree.FindMin();
435 FreeChunk* nextChunk = chunk->Next();