10 #ifndef SkChunkAlloc_DEFINED
11 #define SkChunkAlloc_DEFINED
32 kReturnNil_AllocFailType,
43 void*
alloc(
size_t bytes, AllocFailType);
49 return this->
alloc(bytes, kThrow_AllocFailType);
60 size_t totalCapacity()
const {
return fTotalCapacity; }
61 size_t totalUsed()
const {
return fTotalUsed; }
62 SkDEBUGCODE(
int blockCount()
const {
return fBlockCount; })
63 SkDEBUGCODE(
size_t totalLost()
const {
return fTotalLost; })
70 bool contains(
const void* addr)
const;
78 size_t fTotalCapacity;
80 SkDEBUGCODE(
int fBlockCount;)
81 SkDEBUGCODE(
size_t fTotalLost;)
83 Block* newBlock(
size_t bytes, AllocFailType ftype);
84 Block* addBlockIfNecessary(
size_t bytes, AllocFailType ftype);
86 SkDEBUGCODE(
void validate();)
bool contains(const void *addr) const
Returns true if the specified address is within one of the chunks, and has at least 1-byte following ...
void * allocThrow(size_t bytes)
Shortcut for calling alloc with kThrow_AllocFailType.
Definition: SkChunkAlloc.h:48
void rewind()
Reset to 0 used bytes preserving as much memory as possible.
Definition: SkChunkAlloc.h:15
size_t unalloc(void *ptr)
Call this to unalloc the most-recently allocated ptr by alloc().
void * alloc(size_t bytes, AllocFailType)
Allocates a memory block of size bytes.
void reset()
Free up all allocated blocks.