### Method

# GObject Closure set_meta_marshal

#### Declaration

    void
    g_closure_set_meta_marshal (
      GClosure* closure,
      gpointer marshal_data,
      GClosureMarshal meta_marshal
    )

#### Description

Sets the meta marshaller of `closure`.

A meta marshaller wraps the `closure`‘s marshal and modifies the way it is called in some fashion. The most common use of this facility is for C callbacks.

The same marshallers (generated by [glib-genmarshal][glib-genmarshal]), are used everywhere, but the way that we get the callback function differs. In most cases we want to use the `closure`‘s callback, but in other cases we want to use some different technique to retrieve the callback function.

For example, class closures for signals (see g_signal_type_cclosure_new()) retrieve the callback function from a fixed offset in the class structure. The meta marshaller retrieves the right callback and passes it to the marshaller as the `marshal_data` argument.

This method is not directly available to language bindings.

#### Parameters

`marshal_data`

  Type: `gpointer`

  Context-dependent data to pass to `meta_marshal`.

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

`meta_marshal`

  Type: `GClosureMarshal`

  A `GClosureMarshal` function.

  The argument can be `NULL`.