Fix memory leaks from results of gtk_tree_model_get().
[claws.git] / src / prefs_filtering.c
index 799b54e95e128384d3f0ad9a0185b9654c1aafc5..8424ff8932bc49d023169b745935636b1bc2f4e9 100644 (file)
@@ -957,7 +957,6 @@ static void prefs_filtering_set_list(void)
                                        filtering.cond_list_view, row,
                                        &enabled, &name, &account_id);
                        prop = matcher_parser_get_filtering(filtering_str);
-                       g_free(filtering_str);
                        if (prop) {
                                prop->enabled = enabled;
                                if (prop->name != NULL)
@@ -968,7 +967,8 @@ static void prefs_filtering_set_list(void)
                                        g_slist_append(prefs_filtering, prop);
                        }
                }
-               
+
+               g_free(filtering_str);
                row++;
        }                               
        
@@ -1183,6 +1183,7 @@ static void prefs_filtering_substitute_cb(gpointer action, gpointer data)
        prefs_filtering_list_view_get_rule_info(
                        filtering.cond_list_view, selected_row,
                        &enabled, &name, &account_id);
+       g_free(name); /* We're not using this. */
        prop->enabled = enabled;
 
        prefs_filtering_list_view_set_row(selected_row, prop);
@@ -1263,6 +1264,7 @@ static void prefs_filtering_duplicate_cb(gpointer action, gpointer data)
        prefs_filtering_list_view_get_rule_info(
                        filtering.cond_list_view, selected_row,
                        &enabled, &name, &account_id);
+       g_free(name); /* We're not using this. */
        prop->enabled = enabled;
 
        prefs_filtering_list_view_set_row(-selected_row-2, prop);
@@ -1798,9 +1800,11 @@ static GtkWidget *prefs_filtering_list_view_create(void)
 {
        GtkTreeView *list_view;
        GtkTreeSelection *selector;
+       GtkListStore *store = prefs_filtering_create_data_store();
 
-       list_view = GTK_TREE_VIEW(gtk_tree_view_new_with_model(GTK_TREE_MODEL
-               (prefs_filtering_create_data_store())));
+       list_view = GTK_TREE_VIEW(gtk_tree_view_new_with_model(
+                               GTK_TREE_MODEL(store)));
+       g_object_unref(store);
 #ifdef GENERIC_UMPC
        g_object_set(list_view, "allow-checkbox-mode", FALSE, NULL);
 #endif