]> git.0d.be Git - empathy.git/commitdiff
free GDate leaks when inserting them into the model
authorGuillaume Desmottes <guillaume.desmottes@collabora.co.uk>
Mon, 14 Nov 2011 11:12:29 +0000 (12:12 +0100)
committerGuillaume Desmottes <guillaume.desmottes@collabora.co.uk>
Mon, 14 Nov 2011 14:37:22 +0000 (15:37 +0100)
The model copies the date so we should free it afterward.

https://bugzilla.gnome.org/show_bug.cgi?id=663873

libempathy-gtk/empathy-log-window.c

index 10ea8af5ec8aeadf64d4fc623c3ecabfc10d552e..4addfda23cf20569c42381d23c6bd1fc9f7766a8 100644 (file)
@@ -1803,18 +1803,27 @@ populate_dates_from_search_hits (GList *accounts,
 
   if (gtk_tree_model_get_iter_first (model, &iter))
     {
 
   if (gtk_tree_model_get_iter_first (model, &iter))
     {
+      GDate *date;
+
+      date = g_date_new_dmy (1, 1, -1),
+
       gtk_list_store_prepend (store, &iter);
       gtk_list_store_set (store, &iter,
       gtk_list_store_prepend (store, &iter);
       gtk_list_store_set (store, &iter,
-          COL_WHEN_DATE, g_date_new_dmy (1, 1, -1),
+          COL_WHEN_DATE, date,
           COL_WHEN_TEXT, "separator",
           -1);
 
           COL_WHEN_TEXT, "separator",
           -1);
 
+      g_date_free (date);
+
+      date = g_date_new_dmy (2, 1, -1),
       gtk_list_store_prepend (store, &iter);
       gtk_list_store_set (store, &iter,
       gtk_list_store_prepend (store, &iter);
       gtk_list_store_set (store, &iter,
-          COL_WHEN_DATE, g_date_new_dmy (2, 1, -1),
+          COL_WHEN_DATE, date,
           COL_WHEN_TEXT, _("Anytime"),
           -1);
 
           COL_WHEN_TEXT, _("Anytime"),
           -1);
 
+      g_date_free (date);
+
       if (gtk_tree_model_iter_nth_child (model, &iter, NULL, 2))
         gtk_tree_selection_select_iter (selection, &iter);
     }
       if (gtk_tree_model_iter_nth_child (model, &iter, NULL, 2))
         gtk_tree_selection_select_iter (selection, &iter);
     }
@@ -3418,17 +3427,27 @@ log_manager_got_dates_cb (GObject *manager,
 
       if (g_strcmp0 (separator, "separator") != 0)
         {
 
       if (g_strcmp0 (separator, "separator") != 0)
         {
+          GDate *date;
+
+          date = g_date_new_dmy (1, 1, -1);
+
           gtk_list_store_prepend (store, &iter);
           gtk_list_store_set (store, &iter,
           gtk_list_store_prepend (store, &iter);
           gtk_list_store_set (store, &iter,
-              COL_WHEN_DATE, g_date_new_dmy (1, 1, -1),
+              COL_WHEN_DATE, date,
               COL_WHEN_TEXT, "separator",
               -1);
 
               COL_WHEN_TEXT, "separator",
               -1);
 
+          g_date_free (date);
+
+          date = g_date_new_dmy (2, 1, -1);
+
           gtk_list_store_prepend (store, &iter);
           gtk_list_store_set (store, &iter,
           gtk_list_store_prepend (store, &iter);
           gtk_list_store_set (store, &iter,
-              COL_WHEN_DATE, g_date_new_dmy (2, 1, -1),
+              COL_WHEN_DATE, date,
               COL_WHEN_TEXT, _("Anytime"),
               -1);
               COL_WHEN_TEXT, _("Anytime"),
               -1);
+
+          g_date_free (date);
         }
     }
 
         }
     }