Function

GLibSListfree_full

since: 2.28

Declaration [src]

void
g_slist_free_full (
  GSList* list,
  GDestroyNotify free_func
)

Description [src]

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

free_func must not modify the list (eg, by removing the freed element from it).

It can be combined with g_steal_pointer() to ensure the list head pointer is not left dangling ­— this also has the nice property that the head pointer is cleared before any of the list elements are freed, to prevent double frees from free_func:

GSList *list_of_owned_things = ;  /<!-- -->* (transfer full) (element-type GObject) *<!-- -->/
g_slist_free_full (g_steal_pointer (&list_of_owned_things), g_object_unref);

Available since: 2.28

This function is not directly available to language bindings.

Parameters

list

Type: A list of gpointer

The first link of a GSList.

The data is owned by the caller of the function.
free_func

Type: GDestroyNotify

The function to be called to free each element’s data.