|
Blender V4.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 20 of file BLI_memiter.h.
| typedef struct BLI_memiter BLI_memiter |
Definition at line 24 of file BLI_memiter.h.
| typedef struct BLI_memiter_handle BLI_memiter_handle |
Private structure.
| void * BLI_memiter_alloc | ( | BLI_memiter * | mi, |
| unsigned int | elem_size ) |
Definition at line 133 of file BLI_memiter.c.
References BLI_asan_poison, BLI_asan_unpoison, BLI_assert, BLI_memiter::chunk_size_in_bytes_min, BLI_memiter::count, BLI_memiter_chunk::data, BLI_memiter_elem::data, BLI_memiter::data_curr, BLI_memiter::data_last, data_offset_from_size(), BLI_memiter::head, LIKELY, 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 | elem_size ) |
Definition at line 193 of file BLI_memiter.c.
References BLI_memiter_alloc(), and data.
| void BLI_memiter_clear | ( | BLI_memiter * | mi | ) |
Definition at line 226 of file BLI_memiter.c.
References memiter_free_data(), and memiter_init().
| unsigned int BLI_memiter_count | ( | const BLI_memiter * | mi | ) |
Definition at line 232 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 116 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 220 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 243 of file BLI_memiter.c.
References BLI_memiter_chunk::data, BLI_memiter_elem::data, BLI_memiter::head, and NULL.
| void * BLI_memiter_elem_first_size | ( | BLI_memiter * | mi, |
| unsigned int * | r_size ) |
Definition at line 253 of file BLI_memiter.c.
References BLI_memiter_chunk::data, BLI_memiter_elem::data, BLI_memiter::head, NULL, and BLI_memiter_elem::size.
| void bool BLI_memiter_iter_done | ( | const BLI_memiter_handle * | iter | ) |
Definition at line 283 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 314 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, 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().