Blender V4.3
BLI_memblock.h File Reference

Go to the source code of this file.

Classes

struct  BLI_memblock_iter
 

Macros

#define BLI_MEM_BLOCK_CHUNK_SIZE   (1 << 15) /* 32KiB */
 
#define BLI_memblock_create(elem_size)   BLI_memblock_create_ex(elem_size, BLI_MEM_BLOCK_CHUNK_SIZE)
 

Typedefs

typedef struct BLI_memblock BLI_memblock
 
typedef void(* MemblockValFreeFP) (void *val)
 
typedef struct BLI_memblock_iter BLI_memblock_iter
 

Functions

BLI_memblockBLI_memblock_create_ex (uint elem_size, uint chunk_size) ATTR_WARN_UNUSED_RESULT
 
void * BLI_memblock_alloc (BLI_memblock *mblk) ATTR_WARN_UNUSED_RESULT ATTR_NONNULL(1)
 
void BLI_memblock_clear (BLI_memblock *mblk, MemblockValFreeFP free_callback) ATTR_NONNULL(1)
 
void BLI_memblock_destroy (BLI_memblock *mblk, MemblockValFreeFP free_callback) ATTR_NONNULL(1)
 
void BLI_memblock_iternew (BLI_memblock *mblk, BLI_memblock_iter *iter) ATTR_NONNULL()
 
void * BLI_memblock_iterstep (BLI_memblock_iter *iter) ATTR_WARN_UNUSED_RESULT ATTR_NONNULL()
 
void * BLI_memblock_elem_get (BLI_memblock *mblk, int chunk, int elem) ATTR_WARN_UNUSED_RESULT ATTR_NONNULL()
 

Macro Definition Documentation

◆ BLI_MEM_BLOCK_CHUNK_SIZE

#define BLI_MEM_BLOCK_CHUNK_SIZE   (1 << 15) /* 32KiB */

Definition at line 17 of file BLI_memblock.h.

◆ BLI_memblock_create

#define BLI_memblock_create ( elem_size)    BLI_memblock_create_ex(elem_size, BLI_MEM_BLOCK_CHUNK_SIZE)

Typedef Documentation

◆ BLI_memblock

typedef struct BLI_memblock BLI_memblock

Definition at line 21 of file BLI_memblock.h.

◆ BLI_memblock_iter

typedef struct BLI_memblock_iter BLI_memblock_iter

◆ MemblockValFreeFP

typedef void(* MemblockValFreeFP) (void *val)

Definition at line 22 of file BLI_memblock.h.

Function Documentation

◆ BLI_memblock_alloc()

◆ BLI_memblock_clear()

void BLI_memblock_clear ( BLI_memblock * mblk,
MemblockValFreeFP free_callback )

◆ BLI_memblock_create_ex()

◆ BLI_memblock_destroy()

◆ BLI_memblock_elem_get()

void * BLI_memblock_elem_get ( BLI_memblock * mblk,
int chunk,
int elem )

Direct access. elem is element index inside the chosen chunk. Double usage: You can set chunk to 0 and set the absolute elem index. The correct chunk will be retrieve.

Definition at line 174 of file BLI_memblock.c.

References BLI_assert, BLI_memblock::chunk_list, BLI_memblock::chunk_size, and BLI_memblock::elem_size.

Referenced by DRW_memblock_elem_from_handle(), and drw_resource_buffer_finish().

◆ BLI_memblock_iternew()

◆ BLI_memblock_iterstep()