### Function

# GLib SList free_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.