libostree: Add ostree_bootconfig_parser_clone()

This will be necessary to fix ostree_deployment_clone(), but is
potentially useful on its own for other consumers.
This commit is contained in:
Colin Walters 2014-03-17 19:21:05 -04:00
parent 24b1e9c0ac
commit 606918e763
2 changed files with 26 additions and 0 deletions

View File

@ -38,6 +38,30 @@ typedef GObjectClass OstreeBootconfigParserClass;
G_DEFINE_TYPE (OstreeBootconfigParser, ostree_bootconfig_parser, G_TYPE_OBJECT) G_DEFINE_TYPE (OstreeBootconfigParser, ostree_bootconfig_parser, G_TYPE_OBJECT)
/**
* ostree_bootconfig_parser_clone:
* @self: Bootconfig to clone
*
* Returns: (transfer full): Copy of @self
*/
OstreeBootconfigParser *
ostree_bootconfig_parser_clone (OstreeBootconfigParser *self)
{
OstreeBootconfigParser *parser = ostree_bootconfig_parser_new ();
guint i;
GHashTableIter hashiter;
gpointer k, v;
for (i = 0; i < self->lines->len; i++)
g_ptr_array_add (parser->lines, g_variant_ref (self->lines->pdata[i]));
g_hash_table_iter_init (&hashiter, self->options);
while (g_hash_table_iter_next (&hashiter, &k, &v))
g_hash_table_replace (parser->options, g_strdup (k), g_strdup (v));
return parser;
}
gboolean gboolean
ostree_bootconfig_parser_parse (OstreeBootconfigParser *self, ostree_bootconfig_parser_parse (OstreeBootconfigParser *self,
GFile *path, GFile *path,

View File

@ -34,6 +34,8 @@ GType ostree_bootconfig_parser_get_type (void) G_GNUC_CONST;
OstreeBootconfigParser * ostree_bootconfig_parser_new (void); OstreeBootconfigParser * ostree_bootconfig_parser_new (void);
OstreeBootconfigParser * ostree_bootconfig_parser_clone (OstreeBootconfigParser *self);
gboolean ostree_bootconfig_parser_parse (OstreeBootconfigParser *self, gboolean ostree_bootconfig_parser_parse (OstreeBootconfigParser *self,
GFile *path, GFile *path,
GCancellable *cancellable, GCancellable *cancellable,