[gnome-builder] bufmgr: use transfer-full for returning buffers



commit 91cbc59621c4897629b61794926ec58fe7103fca
Author: Christian Hergert <chergert redhat com>
Date:   Mon Apr 9 15:01:03 2018 -0700

    bufmgr: use transfer-full for returning buffers
    
    This allows us to avoid relying on free_func directly and allow the callers
    to control that.

 src/libide/buffers/ide-buffer-manager.c | 4 ++--
 src/libide/ide-context.c                | 9 ++++++---
 2 files changed, 8 insertions(+), 5 deletions(-)
---
diff --git a/src/libide/buffers/ide-buffer-manager.c b/src/libide/buffers/ide-buffer-manager.c
index 31c3d1d1e..274a178c4 100644
--- a/src/libide/buffers/ide-buffer-manager.c
+++ b/src/libide/buffers/ide-buffer-manager.c
@@ -1822,7 +1822,7 @@ unregister_auto_save (IdeBufferManager *self,
  *
  * Buffers are generally not added to the buffer list until they have been loaded.
  *
- * Returns: (transfer container) (element-type Ide.Buffer): a #GPtrArray of buffers.
+ * Returns: (transfer full) (element-type Ide.Buffer): a #GPtrArray of buffers.
  */
 GPtrArray *
 ide_buffer_manager_get_buffers (IdeBufferManager *self)
@@ -1842,7 +1842,7 @@ ide_buffer_manager_get_buffers (IdeBufferManager *self)
       g_ptr_array_add (ret, g_object_ref (buffer));
     }
 
-  return g_steal_pointer (&ret);
+  return IDE_PTR_ARRAY_STEAL_FULL (&ret);
 }
 
 /**
diff --git a/src/libide/ide-context.c b/src/libide/ide-context.c
index 861cad201..cf2d69ae8 100644
--- a/src/libide/ide-context.c
+++ b/src/libide/ide-context.c
@@ -56,13 +56,14 @@
 #include "snippets/ide-source-snippets-manager.h"
 #include "testing/ide-test-manager.h"
 #include "transfers/ide-transfer-manager.h"
-#include "util/ide-async-helper.h"
-#include "util/ide-line-reader.h"
-#include "util/ide-settings.h"
 #include "vcs/ide-vcs.h"
 #include "vcs/ide-vcs-monitor.h"
 #include "workbench/ide-workbench.h"
 #include "threading/ide-task.h"
+#include "util/ide-async-helper.h"
+#include "util/ide-glib.h"
+#include "util/ide-line-reader.h"
+#include "util/ide-settings.h"
 
 /**
  * SECTION:ide-context
@@ -1872,6 +1873,8 @@ ide_context_unload_buffer_manager (gpointer             source_object,
 
   buffers = ide_buffer_manager_get_buffers (self->buffer_manager);
 
+  IDE_PTR_ARRAY_SET_FREE_FUNC (buffers, g_object_unref);
+
   task = ide_task_new (self, cancellable, callback, user_data);
 
   if (buffers->len == 0)


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