23 #ifndef ELM_ALLOC_STACKALLOCATOR_H_
24 #define ELM_ALLOC_STACKALLOCATOR_H_
26 #include <elm/types.h>
27 #include <elm/assert.h>
28 #include <elm/alloc/DefaultAllocator.h>
29 #include <elm/PreIterator.h>
41 inline void free(
void *block) { }
66 inline bool ended(
void)
const {
return !cur; }
Definition: StackAllocator.h:61
ChunkIter & operator=(const ChunkIter &i)
Definition: StackAllocator.h:65
ChunkIter(const ChunkIter &i)
Definition: StackAllocator.h:64
void next(void)
Definition: StackAllocator.h:68
ChunkIter(const StackAllocator &a)
Definition: StackAllocator.h:63
chunk_t * item(void) const
Definition: StackAllocator.h:67
bool ended(void) const
Definition: StackAllocator.h:66
Definition: StackAllocator.h:34
virtual void * chunkFilled(t::size size)
Definition: alloc_StackAllocator.cpp:92
void newChunk(void)
Definition: alloc_StackAllocator.cpp:121
StackAllocator(t::size size=4096)
Definition: alloc_StackAllocator.cpp:55
void release(mark_t mark)
Definition: alloc_StackAllocator.cpp:151
virtual ~StackAllocator(void)
Definition: alloc_StackAllocator.cpp:63
static StackAllocator DEFAULT
Definition: StackAllocator.h:36
T * allocate(int n=1)
Definition: StackAllocator.h:51
char * mark_t
Definition: StackAllocator.h:45
t::size chunkSize(void) const
Definition: StackAllocator.h:73
void free(void *block)
Definition: StackAllocator.h:41
mark_t mark(void)
Definition: alloc_StackAllocator.cpp:142
void clear(void)
Definition: alloc_StackAllocator.cpp:109
void * allocate()
Definition: StackAllocator.h:40
struct elm::StackAllocator::chunk_t chunk_t
uint64 size
Definition: arch.h:35
Definition: StackAllocator.h:56
char buffer[0]
Definition: StackAllocator.h:58
struct chunk_t * next
Definition: StackAllocator.h:57