Struct
GLibList
Description [src]
struct GList {
gpointer data;
GList* next;
GList* prev;
}
The GList
struct is used for each element in a doubly-linked list.
Structure members
data
Holds the element’s data, which can be a pointer to any kind of data, or any integer value using the [Type Conversion Macros][glib-Type-Conversion-Macros].
next
Contains the link to the next element in the list.
prev
Contains the link to the previous element in the list.
Functions
g_list_alloc
Allocates space for one GList
element. It is called by
g_list_append(), g_list_prepend(), g_list_insert()
and
g_list_insert_sorted()
and so is rarely used on its own.
g_list_concat
Adds the second GList
onto the end of the first GList
.
Note that the elements of the second GList
are not copied.
They are used directly.
g_list_delete_link
Removes the node link_ from the list and frees it.
Compare this to g_list_remove_link()
which removes the node
without freeing it.
g_list_find_custom
Finds an element in a GList
, using a supplied function to
find the desired element. It iterates over the list, calling
the given function which should return 0 when the desired
element is found. The function takes two #gconstpointer arguments,
the GList
element’s data as the first argument and the
given user data.
g_list_free
Frees all of the memory used by a GList
.
The freed elements are returned to the slice allocator.
g_list_free_1
Frees one GList
element, but does not update links from the next and
previous elements in the list, so you should not call this function on an
element that is currently part of a list.
g_list_free_full
Convenience method, which frees all the memory used by a GList
,
and calls free_func
on every element’s data.
since: 2.28
g_list_insert_sorted
Inserts a new element into the list, using the given comparison function to determine its position.
g_list_insert_sorted_with_data
Inserts a new element into the list, using the given comparison function to determine its position.
since: 2.10
g_list_remove
Removes an element from a GList
.
If two elements contain the same data, only the first is removed.
If none of the elements contain the data, the GList
is unchanged.
g_list_remove_all
Removes all list nodes with data equal to data
.
Returns the new head of the list. Contrast with
g_list_remove()
which removes only the first node
matching the given data.
g_list_remove_link
Removes an element from a GList
, without freeing the element.
The removed element’s prev and next links are set to NULL
, so
that it becomes a self-contained list with one element.