diff --git a/lib/test-lib.c b/lib/test-lib.c index 699dde6a8..2e4448796 100644 --- a/lib/test-lib.c +++ b/lib/test-lib.c @@ -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)); } } diff --git a/lib/xdg-app-remote.c b/lib/xdg-app-remote.c index a9b355d9d..a2faf1ff9 100644 --- a/lib/xdg-app-remote.c +++ b/lib/xdg-app-remote.c @@ -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); } /** diff --git a/lib/xdg-app-remote.h b/lib/xdg-app-remote.h index 7f2109017..61186db08 100644 --- a/lib/xdg-app-remote.h +++ b/lib/xdg-app-remote.h @@ -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,