Trash Stacks
Trash Stacks — maintain a stack of unused allocated memory chunks
|
|
Includes
#include <gmodule.h>
Description
A 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 NULL GTrashStack*
is a perfectly valid empty stack.
There is no longer any good reason to use GTrashStack. If you have
extra pieces of memory, free() them and allocate them again later.
Functions
g_trash_stack_push ()
void
g_trash_stack_push (GTrashStack **stack_p,
gpointer data_p);
g_trash_stack_push has been deprecated since version 2.48 and should not be used in newly-written code.
GTrashStack is deprecated without replacement
Pushes a piece of memory onto a GTrashStack.
g_trash_stack_pop ()
gpointer
g_trash_stack_pop (GTrashStack **stack_p);
g_trash_stack_pop has been deprecated since version 2.48 and should not be used in newly-written code.
GTrashStack is deprecated without replacement
Pops a piece of memory off a GTrashStack.
Returns
the element at the top of the stack
g_trash_stack_peek ()
gpointer
g_trash_stack_peek (GTrashStack **stack_p);
g_trash_stack_peek has been deprecated since version 2.48 and should not be used in newly-written code.
GTrashStack is deprecated without replacement
Returns the element at the top of a GTrashStack
which may be NULL.
Returns
the element at the top of the stack
g_trash_stack_height ()
guint
g_trash_stack_height (GTrashStack **stack_p);
g_trash_stack_height has been deprecated since version 2.48 and should not be used in newly-written code.
GTrashStack is deprecated without replacement
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.
Returns
the height of the stack
Types and Values
struct GTrashStack
struct GTrashStack {
GTrashStack *next;
};
GTrashStack has been deprecated since version 2.48 and should not be used in newly-written code.
GTrashStack is deprecated without replacement
Each piece of memory that is pushed onto the stack
is cast to a GTrashStack*.