[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