Creates a new glib.Variant instance from serialised data.

type is the type of glib.Variant instance that will be constructed. The interpretation of data depends on knowing the type.

data is not modified by this function and must remain valid with an unchanging value until such a time as notify is called with user_data. If the contents of data change before that time then the result is undefined.

If data is trusted to be serialised data in normal form then trusted should be TRUE. This applies to serialised data created within this process or read from a trusted location on the disk (such as a file installed in /usr/lib alongside your application). You should set trusted to FALSE if data is read from the network, a file in the user's home directory, etc.

If data was not stored in this machine's native endianness, any multi-byte numeric values in the returned variant will also be in non-native endianness. Variant.byteswap can be used to recover the original values.

notify will be called with user_data when data is no longer needed. The exact time of this call is unspecified and might even be before this function returns.

Note: data must be backed by memory that is aligned appropriately for the type being loaded. Otherwise this function will internally create a copy of the memory (since GLib 2.60) or (in older versions) fail and exit the process.


type VariantType

a definite glib.VariantType

data ubyte[]

the serialised data

trusted bool

TRUE if data is definitely in normal form

notify GDestroyNotify

function to call when data is no longer needed

userData void*

data for notify

Return Value

a new floating glib.Variant of type type


ConstructionException GTK+ fails to create the object.