GLib.SList (original) (raw)

Struct

GLibSList

Description [src]


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 theType 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() andg_slist_insert_sorted() functions and so is rarely used on its own.

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.

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_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_sorted

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

g_slist_nth

Gets the element at the given position in a GSList.

g_slist_position

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

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 withg_slist_remove() which removes only the first node matching the given data.

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_sort

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