Woolz Image Processing
Version 1.7.5
|
Files | |
file | AlcBlockStack.c |
A general purpose memory block allocator. Blocks are allocated and stored in on a stack. | |
Data Structures | |
struct | _AlcBlockStack |
General purpose data structure for maintaining blocks of some data type. Useful for efficient memory allocation. It's not a stack but a doubly linked list of blocks of data which can be used as a stack, heap, list, .... Typedef: AlcBlockStack. More... | |
Enumerations | |
enum | _AlcDirection { ALC_DIRECTION_FWD, ALC_DIRECTION_REV } |
Data structure traversal direction. Typedef: AlcDirection. More... | |
Functions | |
AlcBlockStack * | AlcBlockStackNew (size_t nElem, size_t elmSz, AlcBlockStack *tBlk, AlcErrno *dstErr) |
Creates a new memory block with the required number of elements and adds it to the stack of existing blocks. More... | |
AlcErrno | AlcBlockStackFree (AlcBlockStack *blk) |
Free's the given block and it's elements together with all those below it in the stack. It's not an error for a block's elements pointer to be NULL. More... | |
enum _AlcDirection |
Data structure traversal direction. Typedef: AlcDirection.
Enumerator | |
---|---|
ALC_DIRECTION_FWD |
Towards end of a data structure, eg the tail of a list |
ALC_DIRECTION_REV |
Towards begining of a data structure, eg the head of a list |
AlcBlockStack* AlcBlockStackNew | ( | size_t | nElem, |
size_t | elmSz, | ||
AlcBlockStack * | tBlk, | ||
AlcErrno * | dstErr | ||
) |
Creates a new memory block with the required number of elements and adds it to the stack of existing blocks.
nElem | Number of elements in block. |
elmSz | Size of elements. |
tBlk | Top block, may be NULL. |
dstErr | Destination pointer for error code, may be NULL. |
References ALC_ER_ALLOC, ALC_ER_NONE, AlcCalloc(), AlcFree(), _AlcBlockStack::elements, _AlcBlockStack::elmCnt, _AlcBlockStack::maxElm, _AlcBlockStack::next, and _AlcBlockStack::prev.
Referenced by AlcCPQItemUnlink(), AlcKDTTreeFacts(), AlcLRUCacheFacts(), WlzCMeshExpValues(), and WlzCMeshNewNod3D().
AlcErrno AlcBlockStackFree | ( | AlcBlockStack * | blk | ) |
Free's the given block and it's elements together with all those below it in the stack. It's not an error for a block's elements pointer to be NULL.
blk | Given top block. |
References ALC_ER_NONE, ALC_ER_NULLPTR, AlcFree(), _AlcBlockStack::elements, and _AlcBlockStack::next.
Referenced by AlcCPQQueueFree(), AlcKDTTreeFree(), AlcLRUCacheFree(), WlzCMeshExpValues(), WlzCMeshFree2D(), WlzCMeshFree2D5(), and WlzCMeshFree3D().