24 #define CHUNK_LIST_SIZE 16
71 for (
int i = 0; i <= mblk->
elem_last; i++) {
72 int chunk_idx = i / elem_per_chunk;
73 int elem_idx = i - elem_per_chunk * chunk_idx;
79 for (
int i = 0; i < mblk->
chunk_len; i++) {
89 int last_used_chunk = mblk->
elem_next / elem_per_chunk;
93 int chunk_idx = i / elem_per_chunk;
94 int elem_idx = i - elem_per_chunk * chunk_idx;
100 for (
int i = last_used_chunk + 1; i < mblk->
chunk_len; i++) {
180 chunk += elem / elem_per_chunk;
181 elem = elem % elem_per_chunk;
void BLI_memblock_clear(BLI_memblock *mblk, MemblockValFreeFP free_callback)
BLI_memblock * BLI_memblock_create_ex(uint elem_size, uint chunk_size)
void * BLI_memblock_iterstep(BLI_memblock_iter *iter)
void BLI_memblock_iternew(BLI_memblock *mblk, BLI_memblock_iter *iter)
void * BLI_memblock_elem_get(BLI_memblock *mblk, int chunk, int elem)
void * BLI_memblock_alloc(BLI_memblock *mblk)
void BLI_memblock_destroy(BLI_memblock *mblk, MemblockValFreeFP free_callback)
void(* MemblockValFreeFP)(void *val)
Strict compiler flags for areas of code we want to ensure don't do conversions without us knowing abo...
Read Guarded memory(de)allocation.
#define MEM_recallocN(vmemh, len)
Provides wrapper around system-specific atomic primitives, and some extensions (faked-atomic operatio...
void(* MEM_freeN)(void *vmemh)
void *(* MEM_mallocN_aligned)(size_t len, size_t alignment, const char *str)
void *(* MEM_callocN)(size_t len, const char *str)
void *(* MEM_mallocN)(size_t len, const char *str)
static const int chunk_size