Declaration [src]

g_dbus_gvalue_to_gvariant (
  const GValue* gvalue,
  const GVariantType* type

Description [src]

Converts a GValue to a GVariant of the type indicated by the type parameter.

The conversion is using the following rules:

  • G_TYPE_STRING: 's', 'o', 'g' or 'ay'

  • G_TYPE_STRV: 'as', 'ao' or 'aay'


  • G_TYPE_UCHAR: 'y'

  • G_TYPE_INT: 'i', 'n'

  • G_TYPE_UINT: 'u', 'q'

  • G_TYPE_INT64 'x'

  • G_TYPE_UINT64: 't'

  • G_TYPE_DOUBLE: 'd'

  • G_TYPE_VARIANT: Any GVariantType

This can fail if e.g. gvalue is of type #G_TYPE_STRING and type is [‘i’][G-VARIANT-TYPE-INT32:CAPS]. It will also fail for any GType (including e.g. #G_TYPE_OBJECT and #G_TYPE_BOXED derived-types) not in the table above.

Note that if gvalue is of type #G_TYPE_VARIANT and its value is NULL, the empty GVariant instance (never NULL) for type is returned (e.g. 0 for scalar types, the empty string for string types, ‘/’ for object path types, the empty array for any array type and so on).

See the g_dbus_gvariant_to_gvalue() function for how to convert a GVariant to a GValue.

Available since:2.30


gvalue GValue

A GValue to convert to a GVariant.

 The data is owned by the caller of the function.
type GVariantType

A GVariantType.

 The data is owned by the caller of the function.

Return value

Returns: GVariant

A GVariant (never floating) of GVariantType type holding the data from gvalue or an empty GVariant in case of failure. Free with g_variant_unref().

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