|
Blender V4.5
|
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 16 of file BLI_memiter.h.
| typedef struct BLI_memiter BLI_memiter |
Definition at line 20 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.cc.
References BLI_asan_poison, BLI_asan_unpoison, BLI_assert, BLI_memiter_alloc(), 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, BLI_memiter_elem::size, BLI_memiter::tail, and UNLIKELY.
Referenced by BLI_memiter_alloc(), 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 ) |
References ATTR_NONNULL, ATTR_RETURNS_NONNULL, ATTR_WARN_UNUSED_RESULT, BLI_memiter_alloc_from(), BLI_memiter_calloc(), BLI_memiter_clear(), BLI_memiter_count(), BLI_memiter_destroy(), BLI_memiter_elem_first(), and BLI_memiter_elem_first_size().
Referenced by BLI_memiter_alloc_from(), BLI_memiter_alloc_from(), and memiter_string_test().
| void void * BLI_memiter_calloc | ( | BLI_memiter * | mi, |
| unsigned int | elem_size ) |
Definition at line 193 of file BLI_memiter.cc.
References BLI_memiter_alloc(), BLI_memiter_calloc(), and data.
Referenced by BLI_memiter_alloc_from(), and BLI_memiter_calloc().
| void BLI_memiter_clear | ( | BLI_memiter * | mi | ) |
Definition at line 226 of file BLI_memiter.cc.
References BLI_memiter_clear(), memiter_free_data(), and memiter_init().
Referenced by BLI_memiter_alloc_from(), and BLI_memiter_clear().
| unsigned int BLI_memiter_count | ( | const BLI_memiter * | mi | ) |
Definition at line 232 of file BLI_memiter.cc.
References BLI_memiter_count(), and BLI_memiter::count.
Referenced by BLI_memiter_alloc_from(), and 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.cc.
References BLI_memiter_create(), BLI_memiter::chunk_size_in_bytes_min, MEM_callocN(), MEM_SIZE_OVERHEAD, and memiter_init().
Referenced by BLI_memiter_create(), 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.cc.
References BLI_memiter_destroy(), MEM_freeN(), and memiter_free_data().
Referenced by BLI_memiter_alloc_from(), BLI_memiter_destroy(), 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.cc.
References BLI_memiter_elem_first(), BLI_memiter_chunk::data, BLI_memiter_elem::data, and BLI_memiter::head.
Referenced by BLI_memiter_alloc_from(), and BLI_memiter_elem_first().
| void * BLI_memiter_elem_first_size | ( | BLI_memiter * | mi, |
| unsigned int * | r_size ) |
Definition at line 253 of file BLI_memiter.cc.
References BLI_memiter_elem_first_size(), BLI_memiter_chunk::data, BLI_memiter_elem::data, BLI_memiter::head, and BLI_memiter_elem::size.
Referenced by BLI_memiter_alloc_from(), and BLI_memiter_elem_first_size().
| void bool BLI_memiter_iter_done | ( | const BLI_memiter_handle * | iter | ) |
Definition at line 283 of file BLI_memiter.cc.
References BLI_memiter_iter_done(), and BLI_memiter_handle::elem_left.
Referenced by BLI_memiter_iter_done(), and BLI_memiter_iter_init().
| void BLI_memiter_iter_init | ( | BLI_memiter * | mi, |
| BLI_memiter_handle * | iter ) |
References ATTR_NONNULL, ATTR_WARN_UNUSED_RESULT, BLI_memiter_iter_done(), BLI_memiter_iter_init(), and BLI_memiter_iter_step().
Referenced by BLI_memiter_iter_init(), BLI_memiter_iter_init(), DRW_text_cache_draw(), drw_text_cache_draw_ex(), memiter_empty_test(), memiter_string_test(), and memiter_words10k_test().
| void * BLI_memiter_iter_step | ( | BLI_memiter_handle * | iter | ) |
Definition at line 314 of file BLI_memiter.cc.
References BLI_assert, BLI_memiter_iter_step(), BLI_memiter_elem::data, data, data_offset_from_size(), BLI_memiter_handle::elem, BLI_memiter_handle::elem_left, memiter_chunk_step(), BLI_memiter_elem::size, size(), and UNLIKELY.
Referenced by BLI_memiter_iter_init(), BLI_memiter_iter_step(), DRW_text_cache_draw(), and drw_text_cache_draw_ex().
| void * BLI_memiter_iter_step_size | ( | BLI_memiter_handle * | iter, |
| uint * | r_size ) |
References ATTR_NONNULL, ATTR_WARN_UNUSED_RESULT, and BLI_memiter_iter_step_size().
Referenced by BLI_memiter_iter_step_size(), BLI_memiter_iter_step_size(), memiter_empty_test(), memiter_string_test(), and memiter_words10k_test().