[glib/wip/baedert/xdgmime-leak: 2/2] xdgmime: Free xdg_dirs in shutdown()



commit 4cd350f359f13d2da057504c57cbdc5004dee660
Author: Timm Bäder <mail baedert org>
Date:   Sun Jul 21 11:56:07 2019 +0200

    xdgmime: Free xdg_dirs in shutdown()

 gio/xdgmime/xdgmime.c | 29 +++++++++++++++++++++++------
 1 file changed, 23 insertions(+), 6 deletions(-)
---
diff --git a/gio/xdgmime/xdgmime.c b/gio/xdgmime/xdgmime.c
index fa45d7a0c..05b901189 100644
--- a/gio/xdgmime/xdgmime.c
+++ b/gio/xdgmime/xdgmime.c
@@ -118,7 +118,26 @@ xdg_dir_time_list_add (char   *file_name,
   list->next = dir_time_list;
   dir_time_list = list;
 }
- 
+
+static void
+xdg_dirs_free (void)
+{
+  size_t i;
+
+  /*g_message (__FUNCTION__);*/
+  printf("V\n");
+
+  if (xdg_dirs)
+    {
+
+      for (i = 0; xdg_dirs[i] != NULL; i ++)
+        free (xdg_dirs[i]);
+
+      free (xdg_dirs);
+      xdg_dirs = NULL;
+    }
+}
+
 static void
 xdg_dir_time_list_free (XdgDirTimeList *list)
 {
@@ -339,11 +358,7 @@ xdg_mime_set_dirs (const char * const *dirs)
 {
   size_t i;
 
-  for (i = 0; xdg_dirs != NULL && xdg_dirs[i] != NULL; i++)
-    free (xdg_dirs[i]);
-  if (xdg_dirs != NULL)
-    free (xdg_dirs[i]);
-  xdg_dirs = NULL;
+  xdg_dirs_free ();
 
   if (dirs != NULL)
     {
@@ -742,6 +757,8 @@ xdg_mime_shutdown (void)
   for (list = callback_list; list; list = list->next)
     (list->callback) (list->data);
 
+  xdg_dirs_free ();
+
   need_reread = TRUE;
 }
 


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