lib/repofile: Port mostly to new code style

Prep for a bugfix.

Closes: #915
Approved by: jlebon
This commit is contained in:
Colin Walters 2017-06-07 14:53:06 -04:00 committed by Atomic Bot
parent 6b402e53f4
commit 807a804b16
1 changed files with 41 additions and 78 deletions

View File

@ -148,7 +148,6 @@ _ostree_repo_file_new_for_commit (OstreeRepo *repo,
const char *commit, const char *commit,
GError **error) GError **error)
{ {
OstreeRepoFile *ret = NULL;
g_autoptr(GVariant) commit_v = NULL; g_autoptr(GVariant) commit_v = NULL;
g_autoptr(GVariant) tree_contents_csum_v = NULL; g_autoptr(GVariant) tree_contents_csum_v = NULL;
g_autoptr(GVariant) tree_metadata_csum_v = NULL; g_autoptr(GVariant) tree_metadata_csum_v = NULL;
@ -161,7 +160,7 @@ _ostree_repo_file_new_for_commit (OstreeRepo *repo,
if (!ostree_repo_load_variant (repo, OSTREE_OBJECT_TYPE_COMMIT, if (!ostree_repo_load_variant (repo, OSTREE_OBJECT_TYPE_COMMIT,
commit, &commit_v, error)) commit, &commit_v, error))
goto out; return NULL;
/* PARSE OSTREE_OBJECT_TYPE_COMMIT */ /* PARSE OSTREE_OBJECT_TYPE_COMMIT */
g_variant_get_child (commit_v, 6, "@ay", &tree_contents_csum_v); g_variant_get_child (commit_v, 6, "@ay", &tree_contents_csum_v);
@ -172,17 +171,13 @@ _ostree_repo_file_new_for_commit (OstreeRepo *repo,
ostree_checksum_inplace_from_bytes (g_variant_get_data (tree_metadata_csum_v), ostree_checksum_inplace_from_bytes (g_variant_get_data (tree_metadata_csum_v),
tree_metadata_csum); tree_metadata_csum);
ret = _ostree_repo_file_new_root (repo, tree_contents_csum, tree_metadata_csum); return _ostree_repo_file_new_root (repo, tree_contents_csum, tree_metadata_csum);
out:
return ret;
} }
static gboolean static gboolean
do_resolve (OstreeRepoFile *self, do_resolve (OstreeRepoFile *self,
GError **error) GError **error)
{ {
gboolean ret = FALSE;
g_autoptr(GVariant) root_contents = NULL; g_autoptr(GVariant) root_contents = NULL;
g_autoptr(GVariant) root_metadata = NULL; g_autoptr(GVariant) root_metadata = NULL;
@ -190,27 +185,24 @@ do_resolve (OstreeRepoFile *self,
if (!ostree_repo_load_variant (self->repo, OSTREE_OBJECT_TYPE_DIR_TREE, if (!ostree_repo_load_variant (self->repo, OSTREE_OBJECT_TYPE_DIR_TREE,
self->tree_contents_checksum, &root_contents, error)) self->tree_contents_checksum, &root_contents, error))
goto out; return FALSE;
if (!ostree_repo_load_variant (self->repo, OSTREE_OBJECT_TYPE_DIR_META, if (!ostree_repo_load_variant (self->repo, OSTREE_OBJECT_TYPE_DIR_META,
self->tree_metadata_checksum, &root_metadata, error)) self->tree_metadata_checksum, &root_metadata, error))
goto out; return FALSE;
self->tree_metadata = root_metadata; self->tree_metadata = root_metadata;
root_metadata = NULL; root_metadata = NULL;
self->tree_contents = root_contents; self->tree_contents = root_contents;
root_contents = NULL; root_contents = NULL;
ret = TRUE; return TRUE;
out:
return ret;
} }
static gboolean static gboolean
do_resolve_nonroot (OstreeRepoFile *self, do_resolve_nonroot (OstreeRepoFile *self,
GError **error) GError **error)
{ {
gboolean ret = FALSE;
gboolean is_dir; gboolean is_dir;
int i; int i;
g_autoptr(GVariant) container = NULL; g_autoptr(GVariant) container = NULL;
@ -221,13 +213,13 @@ do_resolve_nonroot (OstreeRepoFile *self,
g_autofree char *tmp_checksum = NULL; g_autofree char *tmp_checksum = NULL;
if (!ostree_repo_file_ensure_resolved (self->parent, error)) if (!ostree_repo_file_ensure_resolved (self->parent, error))
goto out; return FALSE;
if (!self->parent->tree_contents) if (!self->parent->tree_contents)
{ {
g_set_error (error, G_IO_ERROR, G_IO_ERROR_NOT_DIRECTORY, g_set_error (error, G_IO_ERROR, G_IO_ERROR_NOT_DIRECTORY,
"Not a directory"); "Not a directory");
goto out; return FALSE;
} }
i = ostree_repo_file_tree_find_child (self->parent, self->name, &is_dir, &container); i = ostree_repo_file_tree_find_child (self->parent, self->name, &is_dir, &container);
@ -235,7 +227,7 @@ do_resolve_nonroot (OstreeRepoFile *self,
if (i < 0) if (i < 0)
{ {
set_error_noent ((GFile*)self, error); set_error_noent ((GFile*)self, error);
goto out; return FALSE;
} }
if (is_dir) if (is_dir)
@ -255,14 +247,14 @@ do_resolve_nonroot (OstreeRepoFile *self,
if (!ostree_repo_load_variant (self->repo, OSTREE_OBJECT_TYPE_DIR_TREE, if (!ostree_repo_load_variant (self->repo, OSTREE_OBJECT_TYPE_DIR_TREE,
tmp_checksum, &tree_contents, tmp_checksum, &tree_contents,
error)) error))
goto out; return FALSE;
g_free (tmp_checksum); g_free (tmp_checksum);
tmp_checksum = ostree_checksum_from_bytes_v (metadata_csum_v); tmp_checksum = ostree_checksum_from_bytes_v (metadata_csum_v);
if (!ostree_repo_load_variant (self->repo, OSTREE_OBJECT_TYPE_DIR_META, if (!ostree_repo_load_variant (self->repo, OSTREE_OBJECT_TYPE_DIR_META,
tmp_checksum, &tree_metadata, tmp_checksum, &tree_metadata,
error)) error))
goto out; return FALSE;
self->tree_contents = tree_contents; self->tree_contents = tree_contents;
tree_contents = NULL; tree_contents = NULL;
@ -274,35 +266,29 @@ do_resolve_nonroot (OstreeRepoFile *self,
else else
self->index = i; self->index = i;
ret = TRUE; return TRUE;
out:
return ret;
} }
gboolean gboolean
ostree_repo_file_ensure_resolved (OstreeRepoFile *self, ostree_repo_file_ensure_resolved (OstreeRepoFile *self,
GError **error) GError **error)
{ {
gboolean ret = FALSE;
if (self->parent == NULL) if (self->parent == NULL)
{ {
if (self->tree_contents == NULL) if (self->tree_contents == NULL)
if (!do_resolve (self, error)) if (!do_resolve (self, error))
goto out; return FALSE;
} }
else else
{ {
if (self->index == -1) if (self->index == -1)
{ {
if (!do_resolve_nonroot (self, error)) if (!do_resolve_nonroot (self, error))
goto out; return FALSE;
} }
} }
ret = TRUE; return TRUE;
out:
return ret;
} }
gboolean gboolean
@ -311,25 +297,21 @@ ostree_repo_file_get_xattrs (OstreeRepoFile *self,
GCancellable *cancellable, GCancellable *cancellable,
GError **error) GError **error)
{ {
gboolean ret = FALSE;
g_autoptr(GVariant) ret_xattrs = NULL;
if (!ostree_repo_file_ensure_resolved (self, error)) if (!ostree_repo_file_ensure_resolved (self, error))
goto out; return FALSE;
g_autoptr(GVariant) ret_xattrs = NULL;
if (self->tree_metadata) if (self->tree_metadata)
ret_xattrs = g_variant_get_child_value (self->tree_metadata, 3); ret_xattrs = g_variant_get_child_value (self->tree_metadata, 3);
else else
{ {
if (!ostree_repo_load_file (self->repo, ostree_repo_file_get_checksum (self), if (!ostree_repo_load_file (self->repo, ostree_repo_file_get_checksum (self),
NULL, NULL, &ret_xattrs, cancellable, error)) NULL, NULL, &ret_xattrs, cancellable, error))
goto out; return FALSE;
} }
ret = TRUE;
ot_transfer_out_value(out_xattrs, &ret_xattrs); ot_transfer_out_value(out_xattrs, &ret_xattrs);
out: return TRUE;
return ret;
} }
GVariant * GVariant *
@ -721,28 +703,24 @@ query_child_info_dir (OstreeRepo *repo,
GCancellable *cancellable, GCancellable *cancellable,
GError **error) GError **error)
{ {
gboolean ret = FALSE;
g_autoptr(GFileInfo) ret_info = NULL;
g_autoptr(GVariant) metadata = NULL;
ret_info = g_file_info_new (); g_autoptr(GFileInfo) ret_info = g_file_info_new ();
g_file_info_set_attribute_uint32 (ret_info, "standard::type", g_file_info_set_attribute_uint32 (ret_info, "standard::type",
G_FILE_TYPE_DIRECTORY); G_FILE_TYPE_DIRECTORY);
if (g_file_attribute_matcher_matches (matcher, "unix::mode")) if (g_file_attribute_matcher_matches (matcher, "unix::mode"))
{ {
g_autoptr(GVariant) metadata = NULL;
if (!ostree_repo_load_variant (repo, OSTREE_OBJECT_TYPE_DIR_META, if (!ostree_repo_load_variant (repo, OSTREE_OBJECT_TYPE_DIR_META,
metadata_checksum, &metadata, error)) metadata_checksum, &metadata, error))
goto out; return FALSE;
set_info_from_dirmeta (ret_info, metadata); set_info_from_dirmeta (ret_info, metadata);
} }
ret = TRUE;
ot_transfer_out_value(out_info, &ret_info); ot_transfer_out_value(out_info, &ret_info);
out: return TRUE;
return ret;
} }
int int
@ -890,12 +868,11 @@ ostree_repo_file_query_info (GFile *file,
GCancellable *cancellable, GCancellable *cancellable,
GError **error) GError **error)
{ {
gboolean ret = FALSE;
OstreeRepoFile *self = OSTREE_REPO_FILE (file); OstreeRepoFile *self = OSTREE_REPO_FILE (file);
g_autoptr(GFileInfo) info = NULL; g_autoptr(GFileInfo) info = NULL;
if (!ostree_repo_file_ensure_resolved (self, error)) if (!ostree_repo_file_ensure_resolved (self, error))
goto out; return NULL;
if (!self->parent) if (!self->parent)
{ {
@ -907,17 +884,11 @@ ostree_repo_file_query_info (GFile *file,
if (!ostree_repo_file_tree_query_child (self->parent, self->index, if (!ostree_repo_file_tree_query_child (self->parent, self->index,
attributes, flags, attributes, flags,
&info, cancellable, error)) &info, cancellable, error))
goto out; return NULL;
g_assert (info != NULL); g_assert (info != NULL);
} }
ret = TRUE; return g_steal_pointer (&info);
out:
if (!ret)
g_clear_object (&info);
else
g_object_ref (info);
return info;
} }
static GFileAttributeInfoList * static GFileAttributeInfoList *
@ -941,35 +912,27 @@ ostree_repo_file_read (GFile *file,
GCancellable *cancellable, GCancellable *cancellable,
GError **error) GError **error)
{ {
gboolean ret = FALSE;
OstreeRepoFile *self = OSTREE_REPO_FILE (file); OstreeRepoFile *self = OSTREE_REPO_FILE (file);
const char *checksum; const char *checksum;
g_autoptr(GInputStream) ret_stream = NULL; g_autoptr(GInputStream) ret_stream = NULL;
if (!ostree_repo_file_ensure_resolved (self, error)) if (!ostree_repo_file_ensure_resolved (self, error))
goto out; return FALSE;
if (self->tree_contents) if (self->tree_contents)
{ {
g_set_error_literal (error, G_IO_ERROR, g_set_error_literal (error, G_IO_ERROR, G_IO_ERROR_IS_DIRECTORY,
G_IO_ERROR_IS_DIRECTORY,
"Can't open directory"); "Can't open directory");
goto out; return NULL;
} }
checksum = ostree_repo_file_get_checksum (self); checksum = ostree_repo_file_get_checksum (self);
if (!ostree_repo_load_file (self->repo, checksum, &ret_stream, if (!ostree_repo_load_file (self->repo, checksum, &ret_stream,
NULL, NULL, cancellable, error)) NULL, NULL, cancellable, error))
goto out; return NULL;
ret = TRUE; return g_steal_pointer (&ret_stream);
out:
if (!ret)
g_clear_object (&ret_stream);
else
g_object_ref (ret_stream);
return (GFileInputStream*)ret_stream;
} }
static void static void