Blender
V3.3
|
Go to the source code of this file.
Classes | |
struct | BLI_memiter_handle |
Macros | |
#define | BLI_MEMITER_DEFAULT_SIZE (1 << 19) |
Typedefs | |
typedef struct BLI_memiter | BLI_memiter |
typedef struct BLI_memiter_handle | BLI_memiter_handle |
#define BLI_MEMITER_DEFAULT_SIZE (1 << 19) |
Definition at line 18 of file BLI_memiter.h.
typedef struct BLI_memiter BLI_memiter |
Definition at line 1 of file BLI_memiter.h.
typedef struct BLI_memiter_handle BLI_memiter_handle |
Private structure.
void* BLI_memiter_alloc | ( | BLI_memiter * | mi, |
unsigned int | size | ||
) |
Definition at line 131 of file BLI_memiter.c.
References BLI_asan_poison, BLI_asan_unpoison, BLI_assert, blender::io::obj::chunk_size, BLI_memiter::chunk_size_in_bytes_min, BLI_memiter::count, BLI_memiter_elem::data, BLI_memiter_chunk::data, BLI_memiter::data_curr, BLI_memiter::data_last, data_offset_from_size(), BLI_memiter::head, MEM_mallocN, memiter_set_rewind_offset(), BLI_memiter_chunk::next, NULL, BLI_memiter_elem::size, BLI_memiter::tail, and UNLIKELY.
Referenced by BLI_memiter_alloc_from(), BLI_memiter_calloc(), DRW_text_cache_add(), memiter_empty_test(), and memiter_words10k_test().
void BLI_memiter_alloc_from | ( | BLI_memiter * | mi, |
uint | elem_size, | ||
const void * | data_from | ||
) |
Referenced by memiter_string_test().
void void* BLI_memiter_calloc | ( | BLI_memiter * | mi, |
unsigned int | size | ||
) |
Definition at line 191 of file BLI_memiter.c.
References BLI_memiter_alloc(), and data.
void BLI_memiter_clear | ( | BLI_memiter * | mi | ) |
Definition at line 224 of file BLI_memiter.c.
References memiter_free_data(), and memiter_init().
unsigned int BLI_memiter_count | ( | const BLI_memiter * | mi | ) |
Definition at line 230 of file BLI_memiter.c.
References BLI_memiter::count.
BLI_memiter* BLI_memiter_create | ( | unsigned int | chunk_size_min | ) |
chunk_size_min | Should be a power of two and significantly larger than the average element size used. |
While allocations of any size are supported, they won't be efficient (effectively becoming a single-linked list).
Its intended that many elements can be stored per chunk.
Definition at line 114 of file BLI_memiter.c.
References BLI_memiter::chunk_size_in_bytes_min, MEM_mallocN, MEM_SIZE_OVERHEAD, and memiter_init().
Referenced by DRW_text_cache_create(), memiter_empty_test(), memiter_string_test(), memiter_words10k_test(), and TEST().
void BLI_memiter_destroy | ( | BLI_memiter * | mi | ) |
Definition at line 218 of file BLI_memiter.c.
References MEM_freeN, and memiter_free_data().
Referenced by DRW_text_cache_destroy(), memiter_empty_test(), memiter_string_test(), memiter_words10k_test(), and TEST().
void* BLI_memiter_elem_first | ( | BLI_memiter * | mi | ) |
Support direct lookup for the first item.
Definition at line 241 of file BLI_memiter.c.
References BLI_memiter_elem::data, BLI_memiter_chunk::data, BLI_memiter::head, and NULL.
void* BLI_memiter_elem_first_size | ( | BLI_memiter * | mi, |
unsigned int * | r_size | ||
) |
Definition at line 251 of file BLI_memiter.c.
References BLI_memiter_elem::data, BLI_memiter_chunk::data, BLI_memiter::head, NULL, and BLI_memiter_elem::size.
void bool BLI_memiter_iter_done | ( | const BLI_memiter_handle * | iter | ) |
Definition at line 281 of file BLI_memiter.c.
References BLI_memiter_handle::elem_left.
void BLI_memiter_iter_init | ( | BLI_memiter * | mi, |
BLI_memiter_handle * | iter | ||
) |
void* BLI_memiter_iter_step | ( | BLI_memiter_handle * | iter | ) |
Definition at line 312 of file BLI_memiter.c.
References BLI_assert, BLI_memiter_elem::data, data, data_offset_from_size(), BLI_memiter_handle::elem, BLI_memiter_handle::elem_left, memiter_chunk_step(), NULL, size(), BLI_memiter_elem::size, and UNLIKELY.
Referenced by DRW_text_cache_draw(), and drw_text_cache_draw_ex().
void* BLI_memiter_iter_step_size | ( | BLI_memiter_handle * | iter, |
uint * | r_size | ||
) |
Referenced by memiter_empty_test(), memiter_string_test(), and memiter_words10k_test().