VariantBuilder.init

Initialises a #GVariantBuilder structure.

@type must be non-%NULL. It specifies the type of container to construct. It can be an indefinite type such as %G_VARIANT_TYPE_ARRAY or a definite type such as "as" or "(ii)". Maybe, array, tuple, dictionary entry and variant-typed values may be constructed.

After the builder is initialised, values are added using g_variant_builder_add_value() or g_variant_builder_add().

After all the child values are added, g_variant_builder_end() frees the memory associated with the builder and returns the #GVariant that was created.

This function completely ignores the previous contents of @builder. On one hand this means that it is valid to pass in completely uninitialised memory. On the other hand, this means that if you are initialising over top of an existing #GVariantBuilder you need to first call g_variant_builder_clear() in order to avoid leaking memory.

You must not call g_variant_builder_ref() or g_variant_builder_unref() on a #GVariantBuilder that was initialised with this function. If you ever pass a reference to a #GVariantBuilder outside of the control of your own code then you should assume that the person receiving that reference may try to use reference counting; you should use g_variant_builder_new() instead of this function.

class VariantBuilder
void
init

Parameters

type VariantType

a container type

Meta

Since

2.24