[Goodies-commits] r7535 - xfburn/trunk/xfburn

David Mohr squisher at xfce.org
Fri Jun 12 04:40:06 CEST 2009


Author: squisher
Date: 2009-06-12 02:40:05 +0000 (Fri, 12 Jun 2009)
New Revision: 7535

Modified:
   xfburn/trunk/xfburn/xfburn-audio-composition.c
   xfburn/trunk/xfburn/xfburn-audio-track-gst.c
   xfburn/trunk/xfburn/xfburn-audio-track.c
   xfburn/trunk/xfburn/xfburn-data-composition.c
Log:
Release memory of the treeview model when the composition is closed

Modified: xfburn/trunk/xfburn/xfburn-audio-composition.c
===================================================================
--- xfburn/trunk/xfburn/xfburn-audio-composition.c	2009-06-11 20:31:51 UTC (rev 7534)
+++ xfburn/trunk/xfburn/xfburn-audio-composition.c	2009-06-12 02:40:05 UTC (rev 7535)
@@ -191,6 +191,7 @@
   GtkWidget *content;
   GtkWidget *disc_usage;
   GtkWidget *progress;
+  GtkTreeStore *model;
 
   XfburnTranscoder *trans;
 } XfburnAudioCompositionPrivate;
@@ -384,6 +385,7 @@
   priv->content = exo_tree_view_new ();
   model = gtk_tree_store_new (AUDIO_COMPOSITION_N_COLUMNS, GDK_TYPE_PIXBUF, G_TYPE_UINT, G_TYPE_STRING, G_TYPE_UINT, G_TYPE_STRING,
                               G_TYPE_UINT64, G_TYPE_STRING, G_TYPE_STRING, G_TYPE_STRING, G_TYPE_UINT, XFBURN_TYPE_AUDIO_TRACK);
+  priv->model = model;
 
   /*
   gtk_tree_sortable_set_sort_func (GTK_TREE_SORTABLE (model), AUDIO_COMPOSITION_COLUMN_POS,
@@ -505,6 +507,11 @@
 
   g_object_unref (priv->trans);
   priv->trans = NULL;
+
+  /* while the content treeview is part of the GUI and is automatically destroyed
+     when this tab is closed, it does not take ownership of the model, which then
+     must be unref'ed manually */
+  g_object_unref (priv->model);
   
   G_OBJECT_CLASS (parent_class)->finalize (object);
 }
@@ -876,7 +883,7 @@
 {
   GtkTreePath *path = NULL;
   GtkTreeModel *model;
-  
+
   model = gtk_tree_view_get_model (GTK_TREE_VIEW (priv->content));
   
   path = gtk_tree_row_reference_get_path (reference);
@@ -910,6 +917,7 @@
       */
       
       gtk_tree_store_remove (GTK_TREE_STORE (model), &iter);
+      priv->n_tracks--;
     }
     
     gtk_tree_path_free (path);
@@ -1259,6 +1267,7 @@
       gdk_threads_leave ();
 
       g_free (humanlength);
+      /* the tree store makes a copy of the boxed type, so we can free the original */
       g_boxed_free (XFBURN_TYPE_AUDIO_TRACK, atrack);
 
       gdk_threads_enter ();

Modified: xfburn/trunk/xfburn/xfburn-audio-track-gst.c
===================================================================
--- xfburn/trunk/xfburn/xfburn-audio-track-gst.c	2009-06-11 20:31:51 UTC (rev 7534)
+++ xfburn/trunk/xfburn/xfburn-audio-track-gst.c	2009-06-12 02:40:05 UTC (rev 7535)
@@ -47,7 +47,7 @@
 {
   XfburnAudioTrackGst *copy;
 
-  DBG ("copying...");
+  //DBG ("copying...");
 
   copy = g_new0(XfburnAudioTrackGst, 1);
 
@@ -61,7 +61,7 @@
 {
   //XfburnAudioTrackGst *atrack = XFBURN_AUDIO_TRACK_GST (boxed);
 
-  DBG ("Freeing audio track gst");
+  //DBG ("Freeing audio track gst");
 
   g_free (boxed);
 }

Modified: xfburn/trunk/xfburn/xfburn-audio-track.c
===================================================================
--- xfburn/trunk/xfburn/xfburn-audio-track.c	2009-06-11 20:31:51 UTC (rev 7534)
+++ xfburn/trunk/xfburn/xfburn-audio-track.c	2009-06-12 02:40:05 UTC (rev 7535)
@@ -48,7 +48,7 @@
   XfburnAudioTrack *atrack = XFBURN_AUDIO_TRACK (boxed);
   XfburnAudioTrack *copy;
 
-  DBG ("copying...");
+  //DBG ("copying...");
 
   copy = g_new0(XfburnAudioTrack, 1);
   memcpy (copy, boxed, sizeof (XfburnAudioTrack));
@@ -66,7 +66,7 @@
 {
   XfburnAudioTrack *atrack = XFBURN_AUDIO_TRACK (boxed);
 
-  DBG ("Freeing audio track");
+  //DBG ("Freeing audio track");
 
   g_free (atrack->inputfile);
 

Modified: xfburn/trunk/xfburn/xfburn-data-composition.c
===================================================================
--- xfburn/trunk/xfburn/xfburn-data-composition.c	2009-06-11 20:31:51 UTC (rev 7534)
+++ xfburn/trunk/xfburn/xfburn-data-composition.c	2009-06-12 02:40:05 UTC (rev 7535)
@@ -169,6 +169,7 @@
   GtkWidget *content;
   GtkWidget *disc_usage;
   GtkWidget *progress;
+  GtkTreeStore *model;
 
 } XfburnDataCompositionPrivate;
 
@@ -361,6 +362,7 @@
   priv->content = exo_tree_view_new ();
   model = gtk_tree_store_new (DATA_COMPOSITION_N_COLUMNS, GDK_TYPE_PIXBUF, G_TYPE_STRING, G_TYPE_STRING,
                               G_TYPE_UINT64, G_TYPE_STRING, G_TYPE_UINT);
+  priv->model = model;
 							  
   gtk_tree_sortable_set_sort_func (GTK_TREE_SORTABLE (model), DATA_COMPOSITION_COLUMN_CONTENT,
                                    directory_tree_sortfunc, NULL, NULL);
@@ -454,6 +456,8 @@
       icon_file = NULL;
     }
   }
+
+  g_object_unref (priv->model);
   
   G_OBJECT_CLASS (parent_class)->finalize (object);
 }




More information about the Goodies-commits mailing list