68 pre_alloc_local<T, byte_alignment>(num_ele, pre_size,
size_data);
74 pre_alloc_local<T, object_alignment>(num_ele, 0,
size_obj);
79 assert(
store == NULL);
83 throw "malloc failed";
91 return post_alloc_local<T, byte_alignment>
98 return post_alloc_local<T, object_alignment>
103 template<
typename T,
int N>
106 assert(
store == NULL);
107 num_ele = calc_aligned_size<T, N>(num_ele);
108 size_t total = (num_ele + pre_size) *
sizeof(T);
114 template<
typename T,
int N>
116 size_t& avail_sz,
void*& avail_p)
118 assert(
store != NULL);
119 num_ele = calc_aligned_size<T, N>(num_ele);
120 size_t total = (num_ele + pre_size) *
sizeof(T);
123 T* p = align_ptr<T, N>((T*)avail_p + pre_size);
124 avail_p = (
ui8*)avail_p + total;
126 assert((avail_sz & 0x8000000000000000llu) == 0);
141 p->pre_alloc_data<T>(num_ele,
pre_size);
Definition ojph_mem.h:178
const ui32 chunk_size
Definition ojph_mem.h:219
void get_buffer(ui32 needed_bytes, coded_lists *&p)
Definition ojph_mem.cpp:109
stores_list * store
Definition ojph_mem.h:217
~mem_elastic_allocator()
Definition ojph_mem.h:188
mem_elastic_allocator(ui32 chunk_size)
Definition ojph_mem.h:184
stores_list * cur_store
Definition ojph_mem.h:217
size_t total_allocated
Definition ojph_mem.h:218
void pre_alloc_data(size_t num_ele, ui32 pre_size)
Definition ojph_mem.h:66
void alloc()
Definition ojph_mem.h:77
void pre_alloc_obj(size_t num_ele)
Definition ojph_mem.h:72
void * avail_obj
Definition ojph_mem.h:130
void * store
Definition ojph_mem.h:130
void pre_alloc_local(size_t num_ele, ui32 pre_size, size_t &sz)
Definition ojph_mem.h:104
size_t size_data
Definition ojph_mem.h:131
T * post_alloc_data(size_t num_ele, ui32 pre_size)
Definition ojph_mem.h:89
void * avail_data
Definition ojph_mem.h:130
size_t avail_size_data
Definition ojph_mem.h:131
size_t avail_size_obj
Definition ojph_mem.h:131
~mem_fixed_allocator()
Definition ojph_mem.h:60
mem_fixed_allocator()
Definition ojph_mem.h:55
size_t size_obj
Definition ojph_mem.h:131
T * post_alloc_obj(size_t num_ele)
Definition ojph_mem.h:96
T * post_alloc_local(size_t num_ele, ui32 pre_size, size_t &avail_sz, void *&avail_p)
Definition ojph_mem.h:115
Definition ojph_block_common.cpp:48
int32_t si32
Definition ojph_defs.h:55
uint32_t ui32
Definition ojph_defs.h:54
uint8_t ui8
Definition ojph_defs.h:50
Definition ojph_mem.h:162
ui32 buf_size
Definition ojph_mem.h:171
coded_lists(ui32 size)
Definition ojph_mem.h:163
ui8 * buf
Definition ojph_mem.h:173
coded_lists * next_list
Definition ojph_mem.h:170
ui32 avail_size
Definition ojph_mem.h:172
Definition ojph_mem.h:136
size_t size
Definition ojph_mem.h:152
float * f32
Definition ojph_mem.h:156
ui32 pre_size
Definition ojph_mem.h:153
void wrap(T *buffer, size_t num_ele, ui32 pre_size)
void pre_alloc(mem_fixed_allocator *p, size_t num_ele, ui32 pre_size)
Definition ojph_mem.h:138
void finalize_alloc(mem_fixed_allocator *p)
si32 * i32
Definition ojph_mem.h:155
Definition ojph_mem.h:201
static ui32 eval_store_bytes(ui32 available_bytes)
Definition ojph_mem.h:208
ui32 available
Definition ojph_mem.h:213
stores_list(ui32 available_bytes)
Definition ojph_mem.h:202
ui8 * data
Definition ojph_mem.h:214
stores_list * next_store
Definition ojph_mem.h:212