Blender V5.0
BLI_memblock.cc File Reference
#include <algorithm>
#include <cstdlib>
#include <cstring>
#include "BLI_utildefines.h"
#include "BLI_memblock.h"
#include "MEM_guardedalloc.h"
#include "BLI_strict_flags.h"

Go to the source code of this file.

Classes

struct  BLI_memblock

Macros

#define CHUNK_LIST_SIZE   16

Functions

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

Detailed Description

Dead simple, fast memory allocator for allocating many elements of the same size.

Definition in file BLI_memblock.cc.

Macro Definition Documentation

◆ CHUNK_LIST_SIZE

#define CHUNK_LIST_SIZE   16

Definition at line 23 of file BLI_memblock.cc.

Referenced by BLI_memblock_alloc(), BLI_memblock_clear(), and BLI_memblock_create_ex().

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()