[gimp] app: add gimp_g_queue_get_memsize() and gimp_g_queue_get_memsize_foreach()



commit 2c48d55f755e3999dbc94cf767b7dff8340e570d
Author: Michael Natterer <mitch gimp org>
Date:   Wed Jan 27 23:04:31 2016 +0100

    app: add gimp_g_queue_get_memsize() and gimp_g_queue_get_memsize_foreach()

 app/core/gimp-memsize.c |   35 +++++++++++++++++++++++++++++++++++
 app/core/gimp-memsize.h |    8 +++++++-
 2 files changed, 42 insertions(+), 1 deletions(-)
---
diff --git a/app/core/gimp-memsize.c b/app/core/gimp-memsize.c
index 9e9d9f5..32d03bf 100644
--- a/app/core/gimp-memsize.c
+++ b/app/core/gimp-memsize.c
@@ -158,6 +158,41 @@ gimp_g_list_get_memsize_foreach (GList           *list,
 }
 
 gint64
+gimp_g_queue_get_memsize (GQueue *queue,
+                          gint64  data_size)
+{
+  if (queue)
+    {
+      return sizeof (GQueue) +
+             g_queue_get_length (queue) * (data_size + sizeof (GList));
+    }
+
+  return 0;
+}
+
+gint64
+gimp_g_queue_get_memsize_foreach (GQueue          *queue,
+                                  GimpMemsizeFunc  func,
+                                  gint64          *gui_size)
+{
+  gint64 memsize = 0;
+
+  g_return_val_if_fail (func != NULL, 0);
+
+  if (queue)
+    {
+      GList *l;
+
+      memsize = sizeof (GQueue);
+
+      for (l = queue->head; l; l = g_list_next (l))
+        memsize += sizeof (GList) + func (l->data, gui_size);
+    }
+
+  return memsize;
+}
+
+gint64
 gimp_g_value_get_memsize (GValue *value)
 {
   gint64 memsize = 0;
diff --git a/app/core/gimp-memsize.h b/app/core/gimp-memsize.h
index ffc929f..c0469d1 100644
--- a/app/core/gimp-memsize.h
+++ b/app/core/gimp-memsize.h
@@ -36,7 +36,13 @@ gint64   gimp_g_slist_get_memsize_foreach      (GSList          *slist,
 
 gint64   gimp_g_list_get_memsize               (GList           *list,
                                                 gint64           data_size);
-gint64   gimp_g_list_get_memsize_foreach       (GList            *slist,
+gint64   gimp_g_list_get_memsize_foreach       (GList           *list,
+                                                GimpMemsizeFunc  func,
+                                                gint64          *gui_size);
+
+gint64   gimp_g_queue_get_memsize              (GQueue          *queue,
+                                                gint64           data_size);
+gint64   gimp_g_queue_get_memsize_foreach      (GQueue          *queue,
                                                 GimpMemsizeFunc  func,
                                                 gint64          *gui_size);
 


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