C Image Processing Library
Implements a stack of generic pointers. More...
|L_STACK *||lstackCreate (l_int32 nalloc)|
|void||lstackDestroy (L_STACK **plstack, l_int32 freeflag)|
|l_int32||lstackAdd (L_STACK *lstack, void *item)|
|void *||lstackRemove (L_STACK *lstack)|
|l_int32||lstackExtendArray (L_STACK *lstack)|
|l_int32||lstackGetCount (L_STACK *lstack)|
|l_int32||lstackPrint (FILE *fp, L_STACK *lstack)|
|static const l_int32||INITIAL_PTR_ARRAYSIZE = 20|
Implements a stack of generic pointers.
Generic stack The lstack is an array of void * ptrs, onto which objects can be stored. At any time, the number of stored objects is lstack->n. The object at the bottom of the lstack is at array; the object at the top of the lstack is at array[n-1]. New objects are added to the top of the lstack; i.e., the first available location, which is at array[n]. The lstack is expanded by doubling, when needed. Objects are removed from the top of the lstack. When an attempt is made to remove an object from an empty lstack, the result is null. Create/Destroy L_STACK *lstackCreate() void lstackDestroy() Accessors l_int32 lstackAdd() void *lstackRemove() l_int32 lstackExtendArray() l_int32 lstackGetCount() Text description l_int32 lstackPrint()
Definition in file stack.c.
Input: nalloc (initial ptr array size; use 0 for default) Return: lstack, or null on error
Input: &lstack (<to be="" nulled>="">) freeflag (TRUE to free each remaining struct in the array) Return: void
Notes: (1) If freeflag is TRUE, frees each struct in the array. (2) If freeflag is FALSE but there are elements on the array, gives a warning and destroys the array. This will cause a memory leak of all the items that were on the lstack. So if the items require their own destroy function, they must be destroyed before the lstack. (3) To destroy the lstack, we destroy the ptr array, then the lstack, and then null the contents of the input ptr.
Input: lstack item to be added to the lstack Return: 0 if OK; 1 on error.
|void* lstackRemove||(||L_STACK *||lstack||)|
Input: lstack Return: ptr to item popped from the top of the lstack, or null if the lstack is empty or on error