libotutil: Allow no variant in ot_util_variant_builder_from_variant()

For programming convenience in cases where we may or may not have a
GVariant to initialize the builder with.
This commit is contained in:
Matthew Barnes 2015-03-02 14:55:01 -05:00
parent b05d670031
commit fdda36eb77
2 changed files with 15 additions and 19 deletions

View File

@ -369,14 +369,8 @@ add_size_index_to_metadata (OstreeRepo *self,
gboolean ret = FALSE;
gs_unref_variant_builder GVariantBuilder *builder = NULL;
if (original_metadata)
{
/* original_metadata may be NULL */
builder = ot_util_variant_builder_from_variant (original_metadata, G_VARIANT_TYPE ("a{sv}"));
}
else
{
builder = g_variant_builder_new (G_VARIANT_TYPE ("a{sv}"));
}
if (self->object_sizes &&
g_hash_table_size (self->object_sizes) > 0)
@ -2189,11 +2183,9 @@ get_modified_xattrs (OstreeRepo *self,
{
GVariantBuilder *builder;
if (ret_xattrs)
/* ret_xattrs may be NULL */
builder = ot_util_variant_builder_from_variant (ret_xattrs,
G_VARIANT_TYPE ("a(ayay)"));
else
builder = g_variant_builder_new (G_VARIANT_TYPE ("a(ayay)"));
g_variant_builder_add_value (builder,
g_variant_new ("(@ay@ay)",

View File

@ -260,10 +260,13 @@ ot_util_variant_builder_from_variant (GVariant *variant,
const GVariantType *type)
{
GVariantBuilder *builder = NULL;
gint i, n;
builder = g_variant_builder_new (type);
if (variant != NULL)
{
gint i, n;
n = g_variant_n_children (variant);
for (i = 0; i < n; i++)
{
@ -271,6 +274,7 @@ ot_util_variant_builder_from_variant (GVariant *variant,
g_variant_builder_add_value (builder, child);
g_variant_unref (child);
}
}
return builder;
}