[gnome-builder] debugger: make GPtrArray API transfer-full



commit 9b6d9e7b75ba5b018226487ed485a27082d2643c
Author: Christian Hergert <chergert redhat com>
Date:   Mon Apr 9 15:47:55 2018 -0700

    debugger: make GPtrArray API transfer-full
    
    This makes things easier on language bindings, which could be useful if we
    want to implement debuggers in python, for example.

 src/libide/debugger/ide-debugger-locals-view.c    |  3 ++
 src/libide/debugger/ide-debugger-registers-view.c |  2 ++
 src/libide/debugger/ide-debugger-threads-view.c   |  2 ++
 src/libide/debugger/ide-debugger.c                | 12 ++++----
 src/plugins/gdb/gbp-gdb-debugger.c                | 36 +++++++++++++++++++----
 5 files changed, 43 insertions(+), 12 deletions(-)
---
diff --git a/src/libide/debugger/ide-debugger-locals-view.c b/src/libide/debugger/ide-debugger-locals-view.c
index 8644d52e8..31e067859 100644
--- a/src/libide/debugger/ide-debugger-locals-view.c
+++ b/src/libide/debugger/ide-debugger-locals-view.c
@@ -24,6 +24,7 @@
 #include <glib/gi18n.h>
 
 #include "debugger/ide-debugger-locals-view.h"
+#include "util/ide-glib.h"
 #include "threading/ide-task.h"
 
 struct _IdeDebuggerLocalsView
@@ -296,6 +297,7 @@ ide_debugger_locals_view_load_locals_cb (GObject      *object,
   g_assert (IDE_IS_TASK (task));
 
   locals = ide_debugger_list_locals_finish (debugger, result, &error);
+  IDE_PTR_ARRAY_SET_FREE_FUNC (locals, g_object_unref);
 
   if (locals == NULL)
     {
@@ -349,6 +351,7 @@ ide_debugger_locals_view_load_params_cb (GObject      *object,
   g_assert (IDE_IS_DEBUGGER_LOCALS_VIEW (self));
 
   params = ide_debugger_list_params_finish (debugger, result, &error);
+  IDE_PTR_ARRAY_SET_FREE_FUNC (params, g_object_unref);
 
   if (params == NULL)
     {
diff --git a/src/libide/debugger/ide-debugger-registers-view.c 
b/src/libide/debugger/ide-debugger-registers-view.c
index 84436c987..e9124f961 100644
--- a/src/libide/debugger/ide-debugger-registers-view.c
+++ b/src/libide/debugger/ide-debugger-registers-view.c
@@ -23,6 +23,7 @@
 #include <dazzle.h>
 
 #include "debugger/ide-debugger-registers-view.h"
+#include "util/ide-glib.h"
 
 struct _IdeDebuggerRegistersView
 {
@@ -102,6 +103,7 @@ ide_debugger_registers_view_list_registers_cb (GObject      *object,
   gtk_list_store_clear (self->list_store);
 
   registers = ide_debugger_list_registers_finish (debugger, result, &error);
+  IDE_PTR_ARRAY_SET_FREE_FUNC (registers, g_object_unref);
 
   if (error != NULL)
     {
diff --git a/src/libide/debugger/ide-debugger-threads-view.c b/src/libide/debugger/ide-debugger-threads-view.c
index 6565d5f69..0fe305784 100644
--- a/src/libide/debugger/ide-debugger-threads-view.c
+++ b/src/libide/debugger/ide-debugger-threads-view.c
@@ -24,6 +24,7 @@
 #include <glib/gi18n.h>
 
 #include "debugger/ide-debugger-threads-view.h"
+#include "util/ide-glib.h"
 
 struct _IdeDebuggerThreadsView
 {
@@ -277,6 +278,7 @@ ide_debugger_threads_view_list_frames_cb (GObject      *object,
   g_assert (G_IS_ASYNC_RESULT (result));
 
   frames = ide_debugger_list_frames_finish (debugger, result, &error);
+  IDE_PTR_ARRAY_SET_FREE_FUNC (frames, g_object_unref);
 
   if (frames == NULL)
     {
diff --git a/src/libide/debugger/ide-debugger.c b/src/libide/debugger/ide-debugger.c
index 2cf34f9dd..3ad03bbd5 100644
--- a/src/libide/debugger/ide-debugger.c
+++ b/src/libide/debugger/ide-debugger.c
@@ -1292,7 +1292,7 @@ ide_debugger_list_breakpoints_async (IdeDebugger         *self,
  *
  * Gets the list of breakpoints from the debugger.
  *
- * Returns: (transfer container) (element-type Ide.DebuggerBreakpoint): a #GPtrArray
+ * Returns: (transfer full) (element-type Ide.DebuggerBreakpoint): a #GPtrArray
  *   of breakpoints that are registered with the debugger.
  *
  * Since: 3.26
@@ -1581,7 +1581,7 @@ ide_debugger_list_frames_async (IdeDebugger         *self,
  *
  *
  *
- * Returns: (transfer container) (element-type Ide.DebuggerFrame) (nullable): An
+ * Returns: (transfer full) (element-type Ide.DebuggerFrame) (nullable): An
  *   array of debugger frames or %NULL and @error is set.
  */
 GPtrArray *
@@ -1778,7 +1778,7 @@ ide_debugger_list_locals_async (IdeDebugger         *self,
  *
  * Completes an asynchronous request to ide_debugger_list_locals_async().
  *
- * Returns: (transfer container) (element-type Ide.DebuggerVariable): a #GPtrArray of
+ * Returns: (transfer full) (element-type Ide.DebuggerVariable): a #GPtrArray of
  *   #IdeDebuggerVariable if successful; otherwise %NULL and error is set.
  *
  * Since: 3.26
@@ -1837,7 +1837,7 @@ ide_debugger_list_params_async (IdeDebugger         *self,
  *
  * Completes an asynchronous request to ide_debugger_list_params_async().
  *
- * Returns: (transfer container) (element-type Ide.DebuggerVariable): a #GPtrArray of
+ * Returns: (transfer full) (element-type Ide.DebuggerVariable): a #GPtrArray of
  *   #IdeDebuggerVariable if successful; otherwise %NULL and error is set.
  *
  * Since: 3.26
@@ -1884,7 +1884,7 @@ ide_debugger_list_registers_async (IdeDebugger         *self,
  *
  * Completes an asynchronous request to ide_debugger_list_registers_async().
  *
- * Returns: (transfer container) (element-type Ide.DebuggerRegister): a #GPtrArray of
+ * Returns: (transfer full) (element-type Ide.DebuggerRegister): a #GPtrArray of
  *   #IdeDebuggerRegister if successful; otherwise %NULL and error is set.
  *
  * Since: 3.26
@@ -1934,7 +1934,7 @@ ide_debugger_disassemble_async (IdeDebugger                   *self,
  *
  * Completes an asynchronous request to ide_debugger_disassemble_async().
  *
- * Returns: (transfer container) (element-type Ide.DebuggerInstruction): a #GPtrArray
+ * Returns: (transfer full) (element-type Ide.DebuggerInstruction): a #GPtrArray
  *   of #IdeDebuggerInstruction if successful; otherwise %NULL and error is set.
  *
  * Since: 3.26
diff --git a/src/plugins/gdb/gbp-gdb-debugger.c b/src/plugins/gdb/gbp-gdb-debugger.c
index 78abcf61e..7d61fe6ac 100644
--- a/src/plugins/gdb/gbp-gdb-debugger.c
+++ b/src/plugins/gdb/gbp-gdb-debugger.c
@@ -1138,10 +1138,14 @@ gbp_gdb_debugger_list_breakpoints_finish (IdeDebugger   *debugger,
                                           GAsyncResult  *result,
                                           GError       **error)
 {
+  GPtrArray *ret;
+
   g_assert (GBP_IS_GDB_DEBUGGER (debugger));
   g_assert (IDE_IS_TASK (result));
 
-  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
@@ -1634,10 +1638,14 @@ gbp_gdb_debugger_list_frames_finish (IdeDebugger   *debugger,
                                      GAsyncResult  *result,
                                      GError       **error)
 {
+  GPtrArray *ret;
+
   g_assert (GBP_IS_GDB_DEBUGGER (debugger));
   g_assert (IDE_IS_TASK (result));
 
-  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
@@ -1980,10 +1988,14 @@ gbp_gdb_debugger_list_locals_finish (IdeDebugger   *debugger,
                                      GAsyncResult  *result,
                                      GError       **error)
 {
+  GPtrArray *ret;
+
   g_assert (GBP_IS_GDB_DEBUGGER (debugger));
   g_assert (IDE_IS_TASK (result));
 
-  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
@@ -2105,10 +2117,14 @@ gbp_gdb_debugger_list_params_finish (IdeDebugger   *debugger,
                                      GAsyncResult  *result,
                                      GError       **error)
 {
+  GPtrArray *ret;
+
   g_assert (GBP_IS_GDB_DEBUGGER (debugger));
   g_assert (IDE_IS_TASK (result));
 
-  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
@@ -2212,10 +2228,14 @@ gbp_gdb_debugger_list_registers_finish (IdeDebugger   *debugger,
                                         GAsyncResult  *result,
                                         GError       **error)
 {
+  GPtrArray *ret;
+
   g_assert (GBP_IS_GDB_DEBUGGER (debugger));
   g_assert (IDE_IS_TASK (result));
 
-  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
@@ -2328,10 +2348,14 @@ gbp_gdb_debugger_disassemble_finish (IdeDebugger   *debugger,
                                      GAsyncResult  *result,
                                      GError       **error)
 {
+  GPtrArray *ret;
+
   g_assert (GBP_IS_GDB_DEBUGGER (debugger));
   g_assert (IDE_IS_TASK (result));
 
-  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 gboolean


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