[gnome-builder] buildtargetprovider: make get_targets_finish() transfer-full



commit 06edcc536fb0aaef37633343f7d46e4927339164
Author: Christian Hergert <chergert redhat com>
Date:   Mon Apr 9 15:38:00 2018 -0700

    buildtargetprovider: make get_targets_finish() transfer-full
    
    This makes things easier on language bindings to return an array of build
    target instances.

 src/libide/buildsystem/ide-build-target-provider.c          | 2 +-
 src/libide/runner/ide-run-manager.c                         | 2 ++
 src/plugins/autotools/ide-autotools-build-target-provider.c | 2 +-
 src/plugins/flatpak/gbp-flatpak-build-target-provider.c     | 6 +++++-
 src/plugins/meson/gbp-meson-build-target-provider.c         | 2 +-
 5 files changed, 10 insertions(+), 4 deletions(-)
---
diff --git a/src/libide/buildsystem/ide-build-target-provider.c 
b/src/libide/buildsystem/ide-build-target-provider.c
index 72e81c44e..f1bb1fde1 100644
--- a/src/libide/buildsystem/ide-build-target-provider.c
+++ b/src/libide/buildsystem/ide-build-target-provider.c
@@ -104,7 +104,7 @@ ide_build_target_provider_get_targets_async (IdeBuildTargetProvider *self,
  *
  * See also: ide_build_target_provider_get_targets_async()
  *
- * Returns: (transfer container) (element-type Ide.BuildTarget): The array of
+ * Returns: (transfer full) (element-type Ide.BuildTarget): The array of
  *   build targets or %NULL upon failure and @error is set.
  */
 GPtrArray *
diff --git a/src/libide/runner/ide-run-manager.c b/src/libide/runner/ide-run-manager.c
index d021f5a93..dd2f49220 100644
--- a/src/libide/runner/ide-run-manager.c
+++ b/src/libide/runner/ide-run-manager.c
@@ -39,6 +39,7 @@
 #include "runner/ide-runner.h"
 #include "runtimes/ide-runtime.h"
 #include "threading/ide-task.h"
+#include "util/ide-glib.h"
 
 struct _IdeRunManager
 {
@@ -891,6 +892,7 @@ ide_run_manager_provider_get_targets_cb (GObject      *object,
   g_assert (g_list_find (state->providers, provider) != NULL);
 
   ret = ide_build_target_provider_get_targets_finish (provider, result, &error);
+  IDE_PTR_ARRAY_SET_FREE_FUNC (ret, g_object_unref);
 
   if (ret != NULL)
     {
diff --git a/src/plugins/autotools/ide-autotools-build-target-provider.c 
b/src/plugins/autotools/ide-autotools-build-target-provider.c
index c19f56842..8c3e8837a 100644
--- a/src/plugins/autotools/ide-autotools-build-target-provider.c
+++ b/src/plugins/autotools/ide-autotools-build-target-provider.c
@@ -152,7 +152,7 @@ ide_autotools_build_target_provider_get_targets_finish (IdeBuildTargetProvider
 
   ret = ide_task_propagate_pointer (IDE_TASK (result), error);
 
-  IDE_RETURN (ret);
+  IDE_RETURN (IDE_PTR_ARRAY_STEAL_FULL (&ret));
 }
 
 static void
diff --git a/src/plugins/flatpak/gbp-flatpak-build-target-provider.c 
b/src/plugins/flatpak/gbp-flatpak-build-target-provider.c
index 5dd6c496b..b45731e6b 100644
--- a/src/plugins/flatpak/gbp-flatpak-build-target-provider.c
+++ b/src/plugins/flatpak/gbp-flatpak-build-target-provider.c
@@ -78,11 +78,15 @@ gbp_flatpak_build_target_provider_get_targets_finish (IdeBuildTargetProvider  *p
                                                       GAsyncResult            *result,
                                                       GError                 **error)
 {
+  GPtrArray *ret;
+
   g_assert (GBP_IS_FLATPAK_BUILD_TARGET_PROVIDER (provider));
   g_assert (IDE_IS_TASK (result));
   g_assert (ide_task_is_valid (IDE_TASK (result), provider));
 
-  return ide_task_propagate_pointer (IDE_TASK (result), error);
+  ret = ide_task_propagate_pointer (IDE_TASK (result), error);
+
+  return IDE_PTR_ARRAY_STEAL_FULL (&ret);
 }
 
 static void
diff --git a/src/plugins/meson/gbp-meson-build-target-provider.c 
b/src/plugins/meson/gbp-meson-build-target-provider.c
index 6e5bfbd89..2e0ae2e41 100644
--- a/src/plugins/meson/gbp-meson-build-target-provider.c
+++ b/src/plugins/meson/gbp-meson-build-target-provider.c
@@ -415,7 +415,7 @@ gbp_meson_build_target_provider_get_targets_finish (IdeBuildTargetProvider  *pro
     }
 #endif
 
-  IDE_RETURN (ret);
+  IDE_RETURN (IDE_PTR_ARRAY_STEAL_FULL (&ret));
 }
 
 static void


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]