Blender  V2.93
Macros | Typedefs | Functions
BLI_memarena.h File Reference
#include "BLI_compiler_attrs.h"

Go to the source code of this file.

Macros

#define BLI_MEMARENA_STD_BUFSIZE   MEM_SIZE_OPTIMAL(1 << 14)
 

Typedefs

typedef struct MemArena MemArena
 

Functions

struct MemArenaBLI_memarena_new (const size_t bufsize, const char *name) ATTR_WARN_UNUSED_RESULT ATTR_NONNULL(2) ATTR_MALLOC
 
void BLI_memarena_free (struct MemArena *ma) ATTR_NONNULL(1)
 
void BLI_memarena_use_malloc (struct MemArena *ma) ATTR_NONNULL(1)
 
void BLI_memarena_use_calloc (struct MemArena *ma) ATTR_NONNULL(1)
 
void BLI_memarena_use_align (struct MemArena *ma, const size_t align) ATTR_NONNULL(1)
 
void * BLI_memarena_alloc (struct MemArena *ma, size_t size) ATTR_WARN_UNUSED_RESULT ATTR_NONNULL(1) ATTR_MALLOC ATTR_ALLOC_SIZE(2)
 
void * BLI_memarena_calloc (struct MemArena *ma, size_t size) ATTR_WARN_UNUSED_RESULT ATTR_NONNULL(1) ATTR_MALLOC ATTR_ALLOC_SIZE(2)
 
void BLI_memarena_clear (MemArena *ma) ATTR_NONNULL(1)
 

Macro Definition Documentation

◆ BLI_MEMARENA_STD_BUFSIZE

#define BLI_MEMARENA_STD_BUFSIZE   MEM_SIZE_OPTIMAL(1 << 14)

Definition at line 36 of file BLI_memarena.h.

Typedef Documentation

◆ MemArena

typedef struct MemArena MemArena

Definition at line 1 of file BLI_memarena.h.

Function Documentation

◆ BLI_memarena_alloc()

void* BLI_memarena_alloc ( struct MemArena ma,
size_t  size 
)

Definition at line 131 of file BLI_memarena.c.

References MemArena::align, BLI_asan_poison, BLI_asan_unpoison, MemArena::bufs, MemArena::bufsize, MemArena::curbuf, MemArena::cursize, MemBuf::data, MEM_callocN, MEM_mallocN, memarena_curbuf_align(), MemArena::name, MemBuf::next, PADUP, ptr, size(), UNLIKELY, MemArena::use_calloc, and VALGRIND_MEMPOOL_ALLOC.

Referenced by _bmo_slot_buffer_append(), _bmo_slot_copy(), add(), add_cube(), add_name(), add_new_bound_vert(), add_type(), addfillface(), arena_alloc(), arena_realloc(), bevel_build_cutoff(), bevel_vert_construct(), BKE_lnor_spacearr_init(), BKE_mesh_loop_islands_add(), BKE_mesh_loop_islands_init(), BKE_mesh_recalc_looptri(), BKE_mesh_remap_init(), BKE_mesh_tessface_calc_ex(), BLI_astar_node_link_add(), BLI_astar_solution_init(), BLI_linklist_append_arena(), BLI_linklist_prepend_arena(), BLI_memarena_calloc(), BLI_polyfill_beautify(), BLI_polyfill_calc_arena(), BLI_scanfill_edge_add(), BLI_scanfill_vert_add(), blo_cache_storage_entry_register(), bm_face_split_by_edges_island_connect(), BM_face_split_edgenet_connect_islands(), bm_interp_face_store(), bm_isect_edge_tri(), BM_mesh_calc_tessellation(), BM_mesh_calc_tessellation_beauty(), BM_vert_loop_groups_data_layer_create(), bmo_face_inset_individual(), bmo_inset_region_exec(), BMO_slot_buffer_alloc(), BMO_slot_buffer_from_array(), BMO_slot_buffer_from_single(), BMO_slot_mat_set(), build_bvh_spatial(), build_vmesh(), C_BVHTree_FromPolygons(), calculate_profile(), DNA_elem_id_rename(), dynstr_alloc(), ghash_insert_face_edge_link(), ghash_insert_link(), imb_global_cache_get_tile(), imb_thread_cache_init(), init_meta(), insert_seam_vert_array(), knife_empty_list(), math_layer_info_init(), mesh_customdatacorrect_init_container_merge_group(), mesh_customdatacorrect_init_vert(), mesh_remap_item_define(), meshdeform_matrix_solve(), meshdeform_ray_tree_intersect(), new_adj_vmesh(), p_add_ngon(), p_face_add(), p_node_new(), p_vert_add(), p_vert_copy(), pbvh_bmesh_node_limit_ensure_fast(), project_paint_build_proj_ima(), project_paint_op(), project_paint_uvpixel_init(), sdna_expand_names(), set_profile_spacing(), setcenter(), setcorner(), setedge(), split_faces_prepare_new_edges(), split_faces_prepare_new_verts(), strdup_memarena(), strdup_memarena_from_dynstr(), UI_view2d_text_cache_add(), UI_view2d_text_cache_add_rectf(), wm_link_append_data_item_add(), and wm_link_append_data_library_add().

◆ BLI_memarena_calloc()

void* BLI_memarena_calloc ( struct MemArena ma,
size_t  size 
)

◆ BLI_memarena_clear()

void BLI_memarena_clear ( MemArena ma)

◆ BLI_memarena_free()

void BLI_memarena_free ( struct MemArena ma)

◆ BLI_memarena_new()

struct MemArena* BLI_memarena_new ( const size_t  bufsize,
const char *  name 
)

◆ BLI_memarena_use_align()

void BLI_memarena_use_align ( struct MemArena ma,
const size_t  align 
)

Definition at line 101 of file BLI_memarena.c.

References MemArena::align, and BLI_assert.

◆ BLI_memarena_use_calloc()

void BLI_memarena_use_calloc ( struct MemArena ma)

◆ BLI_memarena_use_malloc()

void BLI_memarena_use_malloc ( struct MemArena ma)

Definition at line 96 of file BLI_memarena.c.

References MemArena::use_calloc.