GLib.Variant.get_normal_form

### Method

# GLib Variantget_normal_form

since: 2.24

#### Declaration

    GVariant*
    g_variant_get_normal_form (
      GVariant* value
    )

#### Description

Gets a `GVariant` instance that has the same value as `value` and is trusted to be in normal form.

If `value` is already trusted to be in normal form then a new reference to `value` is returned.

If `value` is not already trusted, then it is scanned to check if it is in normal form. If it is found to be in normal form then it is marked as trusted and a new reference to it is returned.

If `value` is found not to be in normal form then a new trusted `GVariant` is created with the same value as `value`. The non-normal parts of `value` will be replaced with default values which are guaranteed to be in normal form.

It makes sense to call this function if you’ve received `GVariant` data from untrusted sources and you want to ensure your serialized output is definitely in normal form.

If `value` is already in normal form, a new reference will be returned (which will be floating if `value` is floating). If it is not in normal form, the newly created `GVariant` will be returned with a single non-floating reference. Typically, `g_variant_take_ref()` should be called on the return value from this function to guarantee ownership of a single non-floating reference to it.

Available since: 2.24

#### Return value

Type: `GVariant`

A trusted `GVariant`.

The caller of the method takes ownership of the data, and is responsible for freeing it.