Synopsis#include <glib.h> GTrashStack; void g_trash_stack_push (GTrashStack **stack_p, gpointer data_p); gpointer g_trash_stack_pop (GTrashStack **stack_p); gpointer g_trash_stack_peek (GTrashStack **stack_p); guint g_trash_stack_height (GTrashStack **stack_p); DescriptionA GTrashStack is an efficient way to keep a stack of unused allocated memory chunks. Each memory chunk is required to be large enough to hold a gpointer. This allows the stack to be maintained without any space overhead, since the stack pointers can be stored inside the memory chunks.
There is no function to create a GTrashStack. A DetailsGTrashStacktypedef struct { GTrashStack *next; } GTrashStack; Each piece of memory that is pushed onto the stack is cast to a GTrashStack*.
g_trash_stack_push ()void g_trash_stack_push (GTrashStack **stack_p, gpointer data_p); Pushes a piece of memory onto a GTrashStack.
g_trash_stack_pop ()gpointer g_trash_stack_pop (GTrashStack **stack_p); Pops a piece of memory off a GTrashStack.
g_trash_stack_peek ()gpointer g_trash_stack_peek (GTrashStack **stack_p);
Returns the element at the top of a GTrashStack which may be
g_trash_stack_height ()guint g_trash_stack_height (GTrashStack **stack_p); Returns the height of a GTrashStack. Note that execution of this function is of O(N) complexity where N denotes the number of items on the stack.
|