[planner: 18/61] Fix various theoretical GtkListStore memory leaks




commit 0e0d912a70e9a454c2c75909d303828caf31a81a
Author: Mart Raudsepp <leio gentoo org>
Date:   Sat Mar 7 13:29:05 2020 +0200

    Fix various theoretical GtkListStore memory leaks
    
    In practice the GtkBuilder machinery appears to keep ahold of at least
    one reference until program exit, but lets be correct in the reference
    handling.

 src/planner-calendar-dialog.c     | 1 +
 src/planner-calendar-selector.c   | 2 +-
 src/planner-day-type-dialog.c     | 1 +
 src/planner-phase-dialog.c        | 1 +
 src/planner-project-properties.c  | 1 +
 src/planner-resource-dialog.c     | 2 +-
 src/planner-resource-view.c       | 4 ++--
 src/planner-sql-plugin.c          | 1 +
 src/planner-task-dialog.c         | 1 +
 src/planner-working-time-dialog.c | 1 +
 10 files changed, 11 insertions(+), 4 deletions(-)
---
diff --git a/src/planner-calendar-dialog.c b/src/planner-calendar-dialog.c
index a90d9943..f2d8db5f 100644
--- a/src/planner-calendar-dialog.c
+++ b/src/planner-calendar-dialog.c
@@ -849,6 +849,7 @@ cal_dialog_setup_tree_view (GtkTreeView *tree_view,
        model = cal_dialog_create_model (project, tree_view);
 
        gtk_tree_view_set_model (tree_view, model);
+       g_object_unref (model);
 
        cell = gtk_cell_renderer_text_new ();
        col = gtk_tree_view_column_new_with_attributes (
diff --git a/src/planner-calendar-selector.c b/src/planner-calendar-selector.c
index a53d340b..29be2e55 100644
--- a/src/planner-calendar-selector.c
+++ b/src/planner-calendar-selector.c
@@ -171,8 +171,8 @@ cal_selector_setup_tree_view (GtkTreeView *tree_view,
        GtkTreeViewColumn *col;
 
        model = cal_selector_create_model (project, tree_view);
-
        gtk_tree_view_set_model (tree_view, model);
+       g_object_unref (model);
 
        cell = gtk_cell_renderer_text_new ();
        col = gtk_tree_view_column_new_with_attributes (
diff --git a/src/planner-day-type-dialog.c b/src/planner-day-type-dialog.c
index be12c883..d53bac03 100644
--- a/src/planner-day-type-dialog.c
+++ b/src/planner-day-type-dialog.c
@@ -196,6 +196,7 @@ planner_day_type_dialog_new (PlannerWindow *window)
 
        model = day_type_dialog_create_model (data);
        gtk_tree_view_set_model (GTK_TREE_VIEW (data->tree_view), model);
+       g_object_unref (model);
 
        day_type_dialog_build_list (data);
 
diff --git a/src/planner-phase-dialog.c b/src/planner-phase-dialog.c
index b665c8a2..78daf1d7 100644
--- a/src/planner-phase-dialog.c
+++ b/src/planner-phase-dialog.c
@@ -242,6 +242,7 @@ phase_dialog_setup_tree_view (DialogData *data)
 
        gtk_tree_view_set_model (GTK_TREE_VIEW (data->tree_view),
                                 GTK_TREE_MODEL (store));
+       g_object_unref (store);
 
        cell = gtk_cell_renderer_text_new ();
        col = gtk_tree_view_column_new_with_attributes (
diff --git a/src/planner-project-properties.c b/src/planner-project-properties.c
index bf3c2df6..9cd48071 100644
--- a/src/planner-project-properties.c
+++ b/src/planner-project-properties.c
@@ -949,6 +949,7 @@ mpp_setup_properties_list (GtkWidget *dialog)
        model = GTK_TREE_MODEL (
                gtk_list_store_new (NUM_OF_COLS, G_TYPE_POINTER));
        gtk_tree_view_set_model (data->properties_tree, model);
+       g_object_unref (model);
 
        properties = mrp_project_get_properties_from_type (data->project,
                                                           MRP_TYPE_PROJECT);
diff --git a/src/planner-resource-dialog.c b/src/planner-resource-dialog.c
index e1d94d4b..73d9c845 100644
--- a/src/planner-resource-dialog.c
+++ b/src/planner-resource-dialog.c
@@ -1586,8 +1586,8 @@ resource_dialog_setup_calendar_tree_view (DialogData *data)
        tree_view = GTK_TREE_VIEW (data->calendar_tree_view);
 
        model = resource_dialog_create_calendar_model (data);
-
        gtk_tree_view_set_model (tree_view, model);
+       g_object_unref (model);
 
        col = gtk_tree_view_column_new ();
 
diff --git a/src/planner-resource-view.c b/src/planner-resource-view.c
index 3297b979..a5916e6e 100644
--- a/src/planner-resource-view.c
+++ b/src/planner-resource-view.c
@@ -562,6 +562,7 @@ resource_view_get_widget (PlannerView *view)
                                                    G_TYPE_POINTER));
 
        resource_table = gtk_tree_view_new_with_model (model);
+       g_object_unref (model);
 
        priv->tree_view = GTK_TREE_VIEW (resource_table);
 
@@ -2041,8 +2042,7 @@ resource_view_project_loaded_cb (MrpProject *project, PlannerView *view)
                                    -1);
        }
        gtk_tree_view_set_model (tree_view, model);
-
-       g_object_unref (model);
+       g_object_unref (model);
 }
 
 static void
diff --git a/src/planner-sql-plugin.c b/src/planner-sql-plugin.c
index 9590ca33..926f4ea7 100644
--- a/src/planner-sql-plugin.c
+++ b/src/planner-sql-plugin.c
@@ -859,6 +859,7 @@ sql_plugin_retrieve_project_id (PlannerPlugin *plugin,
 
        liststore = gtk_list_store_new (4, G_TYPE_INT, G_TYPE_STRING, G_TYPE_STRING, G_TYPE_INT);
        gtk_tree_view_set_model (GTK_TREE_VIEW (treeview), GTK_TREE_MODEL (liststore));
+       g_object_unref (liststore);
 
        cell = gtk_cell_renderer_text_new ();
        col = gtk_tree_view_column_new_with_attributes (_("ID"),
diff --git a/src/planner-task-dialog.c b/src/planner-task-dialog.c
index e6968a1e..da1ca270 100644
--- a/src/planner-task-dialog.c
+++ b/src/planner-task-dialog.c
@@ -396,6 +396,7 @@ task_dialog_setup_task_combo (GtkComboBox *combo,
 
        gtk_combo_box_set_model (GTK_COMBO_BOX (combo),
                                 GTK_TREE_MODEL (store));
+       g_object_unref (store);
 
        gtk_combo_box_set_entry_text_column (combo, 0);
 
diff --git a/src/planner-working-time-dialog.c b/src/planner-working-time-dialog.c
index 8ddb4ef5..4fcdc56e 100644
--- a/src/planner-working-time-dialog.c
+++ b/src/planner-working-time-dialog.c
@@ -277,6 +277,7 @@ planner_working_time_dialog_new (PlannerWindow *window,
 
        model = working_time_dialog_create_model (data);
        gtk_tree_view_set_model (GTK_TREE_VIEW (data->tree_view), model);
+       g_object_unref (model);
 
        working_time_dialog_build_list (data);
 


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