Blender V5.0
BLI_memblock.h File Reference
#include "BLI_compiler_attrs.h"
#include "BLI_sys_types.h"

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)

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 14 of file BLI_memblock.h.

◆ BLI_memblock_create

#define BLI_memblock_create ( elem_size)
Value:
BLI_memblock * BLI_memblock_create_ex(uint elem_size, uint chunk_size) ATTR_WARN_UNUSED_RESULT
#define BLI_MEM_BLOCK_CHUNK_SIZE

Definition at line 30 of file BLI_memblock.h.

Typedef Documentation

◆ BLI_memblock

typedef struct BLI_memblock BLI_memblock

Definition at line 18 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 19 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 175 of file BLI_memblock.cc.

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

◆ BLI_memblock_iternew()

◆ BLI_memblock_iterstep()