[easytag/wip/discid: 1/2] Unref GtkListStores and a GtkTreeStore



commit 48df5ca2652f3ddef9037b377d471ddd1e425797
Author: David King <amigadave amigadave com>
Date:   Tue Jun 11 19:02:54 2013 +0100

    Unref GtkListStores and a GtkTreeStore
    
    GtkListStore and GtkTreeStore inherit from GObject and not
    GInitiallyUnowned, and so start with a reference count of 1 and no
    floating reference. Therefore, they must be unreffed after adding to a
    view in order to be finalized when the view is destroyed.
    
    The remaining list stores are difficult to disentangle from the
    surrounding code, so have been left unchanged.

 src/browser.c |   11 +++++++----
 src/cddb.c    |   19 +++++++++++--------
 src/easytag.c |    1 +
 src/log.c     |    1 +
 src/misc.c    |    3 +++
 src/picture.c |    1 +
 src/scan.c    |    2 ++
 7 files changed, 26 insertions(+), 12 deletions(-)
---
diff --git a/src/browser.c b/src/browser.c
index d5c7486..a8cde06 100644
--- a/src/browser.c
+++ b/src/browser.c
@@ -3061,12 +3061,11 @@ GtkWidget *Create_Browser_Items (GtkWidget *parent)
     /*
      * The entry box for displaying path
      */
-    if (BrowserEntryModel != NULL)
-        gtk_list_store_clear(BrowserEntryModel);
-    else
-        BrowserEntryModel = gtk_list_store_new(MISC_COMBO_COUNT, G_TYPE_STRING);
+    g_assert (BrowserEntryModel == NULL);
+    BrowserEntryModel = gtk_list_store_new (MISC_COMBO_COUNT, G_TYPE_STRING);
 
     BrowserEntryCombo = gtk_combo_box_new_with_model_and_entry(GTK_TREE_MODEL(BrowserEntryModel));
+    g_object_unref (BrowserEntryModel);
     gtk_combo_box_set_entry_text_column(GTK_COMBO_BOX(BrowserEntryCombo), MISC_COMBO_TEXT);
     /* History list */
     Load_Path_Entry_List(BrowserEntryModel, MISC_COMBO_TEXT);
@@ -3121,6 +3120,7 @@ GtkWidget *Create_Browser_Items (GtkWidget *parent)
 
     /* The tree view */
     BrowserTree = gtk_tree_view_new_with_model(GTK_TREE_MODEL(directoryTreeModel));
+    g_object_unref (directoryTreeModel);
     gtk_container_add(GTK_CONTAINER(ScrollWindowDirectoryTree),BrowserTree);
     gtk_tree_view_set_headers_visible(GTK_TREE_VIEW(BrowserTree), TRUE);
 
@@ -3185,6 +3185,7 @@ GtkWidget *Create_Browser_Items (GtkWidget *parent)
                                          GDK_TYPE_COLOR);
 
     BrowserArtistList = gtk_tree_view_new_with_model(GTK_TREE_MODEL(artistListModel));
+    g_object_unref (artistListModel);
     gtk_tree_view_set_headers_visible(GTK_TREE_VIEW(BrowserArtistList), TRUE);
     
gtk_tree_selection_set_mode(gtk_tree_view_get_selection(GTK_TREE_VIEW(BrowserArtistList)),GTK_SELECTION_SINGLE);
 
@@ -3265,6 +3266,7 @@ GtkWidget *Create_Browser_Items (GtkWidget *parent)
                                         GDK_TYPE_COLOR);
 
     BrowserAlbumList = gtk_tree_view_new_with_model(GTK_TREE_MODEL(albumListModel));
+    g_object_unref (albumListModel);
     gtk_tree_view_set_headers_visible(GTK_TREE_VIEW(BrowserAlbumList), TRUE);
     gtk_tree_view_set_reorderable(GTK_TREE_VIEW(BrowserAlbumList), FALSE);
     gtk_tree_selection_set_mode(gtk_tree_view_get_selection(GTK_TREE_VIEW(BrowserAlbumList)), 
GTK_SELECTION_SINGLE);
@@ -3353,6 +3355,7 @@ GtkWidget *Create_Browser_Items (GtkWidget *parent)
                                         GDK_TYPE_COLOR); /* Row foreground. */
 
     BrowserList = gtk_tree_view_new_with_model(GTK_TREE_MODEL(fileListModel));
+    g_object_unref (fileListModel);
     gtk_container_add(GTK_CONTAINER(ScrollWindowFileList), BrowserList);
     gtk_tree_view_set_headers_visible(GTK_TREE_VIEW(BrowserList), TRUE);
     gtk_tree_view_set_rules_hint(GTK_TREE_VIEW(BrowserList), FALSE);
diff --git a/src/cddb.c b/src/cddb.c
index 0ae4aed..5c0b813 100644
--- a/src/cddb.c
+++ b/src/cddb.c
@@ -330,12 +330,12 @@ void Open_Cddb_Window (void)
     gtk_misc_set_alignment(GTK_MISC(Label),1.0,0.5);
     gtk_box_pack_start(GTK_BOX(hbox),Label,FALSE,FALSE,0);
 
-    if(CddbSearchStringModel == NULL)
-        CddbSearchStringModel = gtk_list_store_new(MISC_COMBO_COUNT, G_TYPE_STRING);
-    else
-        gtk_list_store_clear(CddbSearchStringModel);
+    g_assert (CddbSearchStringModel == NULL);
+    CddbSearchStringModel = gtk_list_store_new (MISC_COMBO_COUNT,
+                                                G_TYPE_STRING);
 
     CddbSearchStringCombo = gtk_combo_box_new_with_model_and_entry(GTK_TREE_MODEL(CddbSearchStringModel));
+    g_object_unref (CddbSearchStringModel);
     gtk_combo_box_set_entry_text_column(GTK_COMBO_BOX(CddbSearchStringCombo),MISC_COMBO_TEXT);
     gtk_widget_set_size_request(GTK_WIDGET(CddbSearchStringCombo),220,-1);
     gtk_box_pack_start(GTK_BOX(hbox),CddbSearchStringCombo,FALSE,TRUE,0);
@@ -520,12 +520,12 @@ void Open_Cddb_Window (void)
     gtk_misc_set_alignment(GTK_MISC(Label),1.0,0.5);
     gtk_box_pack_start(GTK_BOX(hbox),Label,FALSE,FALSE,0);
 
-    if(CddbSearchStringInResultModel == NULL)
-        CddbSearchStringInResultModel = gtk_list_store_new(MISC_COMBO_COUNT, G_TYPE_STRING);
-    else
-        gtk_list_store_clear(CddbSearchStringInResultModel);
+    g_assert (CddbSearchStringInResultModel == NULL);
+    CddbSearchStringInResultModel = gtk_list_store_new (MISC_COMBO_COUNT,
+                                                        G_TYPE_STRING);
 
     CddbSearchStringInResultCombo = 
gtk_combo_box_new_with_model_and_entry(GTK_TREE_MODEL(CddbSearchStringInResultModel));
+    g_object_unref (CddbSearchStringInResultModel);
     gtk_combo_box_set_entry_text_column(GTK_COMBO_BOX(CddbSearchStringInResultCombo),MISC_COMBO_TEXT);
     gtk_box_pack_start(GTK_BOX(hbox),CddbSearchStringInResultCombo,FALSE,FALSE,0);
     
g_signal_connect_swapped(G_OBJECT(GTK_ENTRY(gtk_bin_get_child(GTK_BIN(CddbSearchStringInResultCombo)))),"activate",
@@ -605,6 +605,7 @@ void Open_Cddb_Window (void)
                                             G_TYPE_INT,
                                             GDK_TYPE_COLOR);
     CddbAlbumListView = gtk_tree_view_new_with_model(GTK_TREE_MODEL(CddbAlbumListModel));
+    g_object_unref (CddbAlbumListModel);
 
     renderer = gtk_cell_renderer_pixbuf_new();
     column = gtk_tree_view_column_new_with_attributes(_(CddbAlbumList_Titles[0]), renderer,
@@ -663,6 +664,7 @@ void Open_Cddb_Window (void)
                                             G_TYPE_POINTER,
                                             G_TYPE_POINTER);
     CddbTrackListView = gtk_tree_view_new_with_model(GTK_TREE_MODEL(CddbTrackListModel));
+    g_object_unref (CddbTrackListModel);
     renderer = gtk_cell_renderer_text_new();
     g_object_set(G_OBJECT(renderer), "xalign", 1.0, NULL); // Align to the right
     column = gtk_tree_view_column_new_with_attributes(_(CddbTrackList_Titles[0]), renderer,
@@ -829,6 +831,7 @@ Cddb_Destroy_Window (GtkWidget *widget, GdkEvent *event, gpointer data)
         CddbWindow            = NULL;
         CddbSearchStringCombo = NULL;
         CddbSearchStringModel = NULL;
+        CddbSearchStringInResultModel = NULL;
         CddbAlbumListView     = NULL;
         CddbAlbumListModel    = NULL;
         CddbTrackListView     = NULL;
diff --git a/src/easytag.c b/src/easytag.c
index 83c7e73..ba6aed9 100644
--- a/src/easytag.c
+++ b/src/easytag.c
@@ -1155,6 +1155,7 @@ Create_Tag_Area (void)
                                            G_TYPE_STRING,
                                            G_TYPE_POINTER);
     PictureEntryView = gtk_tree_view_new_with_model(GTK_TREE_MODEL(PictureEntryModel));
+    g_object_unref (PictureEntryModel);
     //gtk_tree_view_set_reorderable(GTK_TREE_VIEW(PictureEntryView),TRUE);
     gtk_container_add(GTK_CONTAINER(PictureScrollWindow), PictureEntryView);
     gtk_tree_view_set_headers_visible(GTK_TREE_VIEW(PictureEntryView), FALSE);
diff --git a/src/log.c b/src/log.c
index 7f6f10a..14ef135 100644
--- a/src/log.c
+++ b/src/log.c
@@ -117,6 +117,7 @@ GtkWidget *Create_Log_Area (void)
                                       GDK_TYPE_COLOR);
 
     LogList = gtk_tree_view_new_with_model(GTK_TREE_MODEL(logListModel));
+    g_object_unref (logListModel);
     gtk_tree_view_set_headers_visible(GTK_TREE_VIEW(LogList), FALSE);
     gtk_container_add(GTK_CONTAINER(ScrollWindowLogList), LogList);
     gtk_tree_view_set_rules_hint(GTK_TREE_VIEW(LogList), FALSE);
diff --git a/src/misc.c b/src/misc.c
index f666cf4..ebe0887 100644
--- a/src/misc.c
+++ b/src/misc.c
@@ -2060,6 +2060,7 @@ void Open_Search_File_Window (void)
 
                                                G_TYPE_POINTER);
     SearchResultList = gtk_tree_view_new_with_model(GTK_TREE_MODEL(SearchResultListModel));
+    g_object_unref (SearchResultListModel);
 
     renderer = gtk_cell_renderer_text_new(); /* Filename */
     column = gtk_tree_view_column_new_with_attributes(_(SearchResultList_Titles[0]), renderer,
@@ -2759,6 +2760,7 @@ void Open_Load_Filename_Window (void)
     gtk_box_pack_start(GTK_BOX(loadedvbox), ScrollWindow, TRUE, TRUE, 0);
     LoadFileContentListModel = gtk_list_store_new(LOAD_FILE_CONTENT_COUNT, G_TYPE_STRING);
     LoadFileContentList = gtk_tree_view_new_with_model(GTK_TREE_MODEL(LoadFileContentListModel));
+    g_object_unref (LoadFileContentListModel);
     
     renderer = gtk_cell_renderer_text_new();
     column = gtk_tree_view_column_new_with_attributes (_("Content of Text File"),
@@ -2852,6 +2854,7 @@ void Open_Load_Filename_Window (void)
     gtk_box_pack_start(GTK_BOX(filelistvbox), ScrollWindow, TRUE, TRUE, 0);
     LoadFileNameListModel = gtk_list_store_new(LOAD_FILE_NAME_COUNT, G_TYPE_STRING,G_TYPE_POINTER);
     LoadFileNameList = gtk_tree_view_new_with_model(GTK_TREE_MODEL(LoadFileNameListModel));
+    g_object_unref (LoadFileNameListModel);
     
     renderer = gtk_cell_renderer_text_new();
     column = gtk_tree_view_column_new_with_attributes(_("List of Files"),
diff --git a/src/picture.c b/src/picture.c
index 57d41e0..5d75675 100644
--- a/src/picture.c
+++ b/src/picture.c
@@ -482,6 +482,7 @@ void Picture_Properties_Button_Clicked (GObject *object)
                                        GTK_POLICY_AUTOMATIC);
         store = gtk_list_store_new(PICTURE_TYPE_COLUMN_COUNT, G_TYPE_STRING, G_TYPE_INT);
         type = gtk_tree_view_new_with_model(GTK_TREE_MODEL(store));
+        g_object_unref (store);
         gtk_container_add(GTK_CONTAINER(ScrollWindowPictureTypes), type);
 
         renderer = gtk_cell_renderer_text_new();
diff --git a/src/scan.c b/src/scan.c
index 29a59ea..0113c69 100644
--- a/src/scan.c
+++ b/src/scan.c
@@ -2440,6 +2440,7 @@ void Open_ScannerWindow (gint scanner_type)
     // The combo box to select the mask to apply
     ScanTagMaskCombo = gtk_combo_box_new_with_entry();
     gtk_combo_box_set_model(GTK_COMBO_BOX(ScanTagMaskCombo), GTK_TREE_MODEL(ScanTagListModel));
+    g_object_unref (ScanTagListModel);
     gtk_combo_box_set_entry_text_column(GTK_COMBO_BOX(ScanTagMaskCombo), MASK_EDITOR_TEXT);
 
     gtk_box_pack_start(GTK_BOX(HBox2),ScanTagMaskCombo,TRUE,TRUE,2);
@@ -2506,6 +2507,7 @@ void Open_ScannerWindow (gint scanner_type)
     // The combo box to select the mask to apply
     RenameFileMaskCombo = gtk_combo_box_new_with_entry();
     gtk_combo_box_set_model(GTK_COMBO_BOX(RenameFileMaskCombo), GTK_TREE_MODEL(RenameFileListModel));
+    g_object_unref (RenameFileListModel);
     gtk_combo_box_set_entry_text_column(GTK_COMBO_BOX(RenameFileMaskCombo), MASK_EDITOR_TEXT);
 
     gtk_box_pack_start(GTK_BOX(HBox4),RenameFileMaskCombo,TRUE,TRUE,2);


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