lib: Return GPtrArray from xdg_app_remote_list_refs_sync

tingping/wmclass
Alexander Larsson 2015-12-17 19:57:01 +01:00
parent b9c582bc75
commit 4ea61d3830
3 changed files with 17 additions and 18 deletions

View File

@ -18,7 +18,6 @@ int
main (int argc, char *argv[])
{
XdgAppInstallation *installation;
XdgAppRemoteRef **refs;
XdgAppInstalledRef *app1;
XdgAppInstalledRef *app2;
XdgAppRemoteRef *remote_ref;
@ -174,6 +173,7 @@ main (int argc, char *argv[])
for (i = 0; remotes[i] != NULL; i++)
{
g_autoptr(GPtrArray) refs = NULL;
g_print ("\nRemote: %s %s %s %d %d\n",
xdg_app_remote_get_name (remotes[i]),
xdg_app_remote_get_url (remotes[i]),
@ -182,19 +182,19 @@ main (int argc, char *argv[])
xdg_app_remote_get_noenumerate (remotes[i]));
g_print ("\n**** Listing remote refs on %s\n", xdg_app_remote_get_name (remotes[i]));
refs = xdg_app_remote_list_refs_sync (remotes[i],
NULL, NULL);
refs = xdg_app_remote_list_refs_sync (remotes[i], NULL, NULL);
if (refs)
{
for (j = 0; refs[j] != NULL; j++)
for (j = 0; j < refs->len; j++)
{
XdgAppRemoteRef *ref = g_ptr_array_index(refs,j);
g_print ("%d %s %s %s %s %s\n",
xdg_app_ref_get_kind (XDG_APP_REF(refs[j])),
xdg_app_ref_get_name (XDG_APP_REF(refs[j])),
xdg_app_ref_get_arch (XDG_APP_REF(refs[j])),
xdg_app_ref_get_version (XDG_APP_REF(refs[j])),
xdg_app_ref_get_commit (XDG_APP_REF(refs[j])),
xdg_app_remote_ref_get_remote_name (refs[j]));
xdg_app_ref_get_kind (XDG_APP_REF(ref)),
xdg_app_ref_get_name (XDG_APP_REF(ref)),
xdg_app_ref_get_arch (XDG_APP_REF(ref)),
xdg_app_ref_get_version (XDG_APP_REF(ref)),
xdg_app_ref_get_commit (XDG_APP_REF(ref)),
xdg_app_remote_ref_get_remote_name (ref));
}
}

View File

@ -179,10 +179,10 @@ xdg_app_remote_get_gpg_verify (XdgAppRemote *self)
*
* Lists all the refs in a #XdgAppRemote.
*
* Returns: (transfer full) (array zero-terminated=1): a %NULL-terminated array
* of #XdgAppRemoteRef instances
* Returns: (transfer container) (element-type XdgAppInstalledRef): an GPtrArray of
* #XdgAppRemoteRef instances
*/
XdgAppRemoteRef **
GPtrArray *
xdg_app_remote_list_refs_sync (XdgAppRemote *self,
GCancellable *cancellable,
GError **error)
@ -211,8 +211,7 @@ xdg_app_remote_list_refs_sync (XdgAppRemote *self,
xdg_app_remote_ref_new (refspec, checksum, priv->name, priv->dir));
}
g_ptr_array_add (refs, NULL);
return (XdgAppRemoteRef **)g_ptr_array_free (g_steal_pointer (&refs), FALSE);
return g_steal_pointer (&refs);
}
/**

View File

@ -54,9 +54,9 @@ XDG_APP_EXTERN char * xdg_app_remote_get_title (XdgAppRemote *self);
XDG_APP_EXTERN gboolean xdg_app_remote_get_gpg_verify (XdgAppRemote *self);
XDG_APP_EXTERN gboolean xdg_app_remote_get_noenumerate (XdgAppRemote *self);
XDG_APP_EXTERN XdgAppRemoteRef **xdg_app_remote_list_refs_sync (XdgAppRemote *self,
GCancellable *cancellable,
GError **error);
XDG_APP_EXTERN GPtrArray *xdg_app_remote_list_refs_sync (XdgAppRemote *self,
GCancellable *cancellable,
GError **error);
XDG_APP_EXTERN XdgAppRemoteRef *xdg_app_remote_fetch_ref_sync (XdgAppRemote *self,
XdgAppRefKind kind,
const char *name,