Method
GLibVariantBuilderinit
since: 2.24
Declaration [src]
void
g_variant_builder_init (
GVariantBuilder* builder,
const GVariantType* type
)
Description [src]
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.
If using a static type such as one of the G_VARIANT_TYPE_*
constants
or a G_VARIANT_TYPE ("(ii)")
macro, it is more performant to use
g_variant_builder_init_static()
rather than g_variant_builder_init().
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.
Available since: 2.24
This method is not directly available to language bindings.
Parameters
type
-
Type:
GVariantType
A container type.
The data is owned by the caller of the method.