### Method

# GObject Object set_qdata_full

#### Declaration

    void
    g_object_set_qdata_full (
      GObject* object,
      GQuark quark,
      gpointer data,
      GDestroyNotify destroy
    )

#### Description

This function works like g_object_set_qdata(), but in addition, a void (*destroy) (gpointer) function may be specified which is called with `data` as argument when the `object` is finalized, or the data is being overwritten by a call to `g_object_set_qdata()` with the same `quark`.

This method is not directly available to language bindings.

#### Parameters

`quark`

  Type: `GQuark`

  A `GQuark`, naming the user data pointer.

`data`

  Type: `gpointer`

  An opaque user data pointer.

  The argument can be `NULL`.
  The data is owned by the caller of the method.

`destroy`

  Type: `GDestroyNotify`

  Function to invoke with `data` as argument, when `data` needs to be freed.

  The argument can be `NULL`.