39 template <
typename T,
typename... Ts>
45 throw std::bad_alloc();
48 return new (
data) T(std::forward<Ts>(ts)...);
60 template <
typename T,
typename... Ts>
66 throw std::bad_alloc();
69 for(
unsigned i=0;
i<len; ++
i)
70 new ((
void*)&
data[
i]) T(std::forward<Ts>(ts)...);
99 for(
size_t i=0;
i<elms; ++
i)
113 virtual bool lowMemory(
unsigned n,
size_t chunk_size)
const = 0;
158 bool lowMemory(
unsigned n,
size_t chunk_size)
const;
167 throw "(de)allocation forbidden";
pool_t pool
Definition Util.cpp:167
the allocator for normal use
Definition Allocator.h:153
bool lowMemory(unsigned n, size_t chunk_size) const
Definition Allocator.cpp:89
void dealloc_mem(void *memory)
Definition Allocator.cpp:82
void addMemory(void *, size_t mem_size)
Definition Allocator.cpp:106
void * alloc_mem(size_t mem_size)
Definition Allocator.cpp:73
Allocator(void)
Definition Allocator.cpp:49
unsigned long long totalAlloced() const
Definition Allocator.cpp:198
void endTransaction()
Definition Allocator.cpp:147
int memPools() const
Definition Allocator.cpp:174
bool memFree(void *pool) const
Definition Allocator.cpp:153
virtual bool lowMemory(unsigned n, size_t chunk_size) const =0
virtual ~Allocator(void)
Definition Allocator.cpp:62
static const size_t max_transaction_length
Definition Allocator.h:126
void dealloc(T *&t)
Definition Allocator.h:76
T * alloc(Ts &&... ts)
Definition Allocator.h:40
virtual void addMemory(void *, size_t mem_size)=0
bool transaction_active
Definition Allocator.h:130
void devalloc(T *&t)
Definition Allocator.h:87
void rollbackTransaction()
Definition Allocator.cpp:203
void devalloc(size_t elms, T *&t)
Definition Allocator.h:96
virtual void dealloc_mem(void *memory)=0
Allocator(const Allocator &)=delete
struct AllocatorImpl * impl
Definition Allocator.h:123
virtual void * alloc_mem(size_t mem_size)=0
void beginTransaction()
Definition Allocator.cpp:140
void append_alloc_to_memory_transaction(void *new_memory)
Definition Allocator.h:139
T * valloc(size_t len, Ts &&... ts)
Definition Allocator.h:61
int freePools() const
Definition Allocator.cpp:185
size_t transaction_alloc_index
Definition Allocator.h:129
void * transaction_alloc_content[max_transaction_length]
Definition Allocator.h:128
Allocator(void)
Definition Allocator.cpp:49
the dummy allocator, which does not allow any allocation
Definition Allocator.h:165
void addMemory(void *, size_t)
Definition Allocator.h:172
void dealloc_mem(void *)
Definition Allocator.h:171
void * alloc_mem(size_t)
Definition Allocator.h:170
void not_allowed() const
Definition Allocator.h:166
bool lowMemory(unsigned, size_t) const
Definition Allocator.h:173
Allocator(void)
Definition Allocator.cpp:49
struct huft * t
Definition inflate.c:943
register unsigned i
Definition inflate.c:1575
Definition zynaddsubfx-src.cpp:569
void * data(next_t *n)
Definition Allocator.cpp:32
DummyAllocator DummyAlloc
Definition Allocator.cpp:23
AllocatorClass Alloc
Definition Allocator.h:161
Definition Allocator.cpp:39
int n
Definition crypt.c:458