Struct

GLibSList

Description

struct GSList {
  gpointer data;
  GSList* next;
}

The GSList struct is used for each element in the singly-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.

Functions

g_slist_alloc

Allocates space for one GSList element. It is called by the g_slist_append(), g_slist_prepend(), g_slist_insert() and g_slist_insert_sorted() functions and so is rarely used on its own.

g_slist_append

Adds a new element on to the end of the list.

g_slist_concat

Adds the second GSList onto the end of the first GSList. Note that the elements of the second GSList are not copied. They are used directly.

g_slist_copy

Copies a GSList.

g_slist_copy_deep

Makes a full (deep) copy of a GSList.

since: 2.34

g_slist_delete_link

Removes the node link_ from the list and frees it. Compare this to g_slist_remove_link() which removes the node without freeing it.

g_slist_find

Finds the element in a GSList which contains the given data.

g_slist_find_custom

Finds an element in a GSList, 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 GSList element’s data as the first argument and the given user data.

g_slist_foreach

Calls a function for each element of a GSList.

g_slist_free

Frees all of the memory used by a GSList. The freed elements are returned to the slice allocator.

g_slist_free_1

Frees one GSList element. It is usually used after g_slist_remove_link().

g_slist_free_full

Convenience method, which frees all the memory used by a GSList, and calls the specified destroy function on every element’s data.

since: 2.28

g_slist_index

Gets the position of the element containing the given data (starting from 0).

g_slist_insert

Inserts a new element into the list at the given position.

g_slist_insert_before

Inserts a node before sibling containing data.

g_slist_insert_sorted

Inserts a new element into the list, using the given comparison function to determine its position.

g_slist_insert_sorted_with_data

Inserts a new element into the list, using the given comparison function to determine its position.

since: 2.10

g_slist_last

Gets the last element in a GSList.

g_slist_length

Gets the number of elements in a GSList.

g_slist_nth

Gets the element at the given position in a GSList.

g_slist_nth_data

Gets the data of the element at the given position.

g_slist_pop_allocator
No description available.

g_slist_position

Gets the position of the given element in the GSList (starting from 0).

g_slist_prepend

Adds a new element on to the start of the list.

g_slist_push_allocator
No description available.

g_slist_remove

Removes an element from a GSList. If two elements contain the same data, only the first is removed. If none of the elements contain the data, the GSList is unchanged.

g_slist_remove_all

Removes all list nodes with data equal to data. Returns the new head of the list. Contrast with g_slist_remove() which removes only the first node matching the given data.

g_slist_remove_link

Removes an element from a GSList, without freeing the element. The removed element’s next link is set to NULL, so that it becomes a self-contained list with one element.

g_slist_reverse

Reverses a GSList.

g_slist_sort

Sorts a GSList using the given comparison function. The algorithm used is a stable sort.

g_slist_sort_with_data

Like g_slist_sort(), but the sort function accepts a user data argument.