[Xfce4-commits] <parole:master> Potential memory leak fixes.
Sean Davis
noreply at xfce.org
Fri Dec 28 01:08:01 CET 2012
Updating branch refs/heads/master
to 45559f1b426b2acf63c92d961cb893316c9980f5 (commit)
from 03b6551d241a054d1cf324cac4eb6c275b35d728 (commit)
commit 45559f1b426b2acf63c92d961cb893316c9980f5
Author: Sean Davis <smd.seandavis at gmail.com>
Date: Thu Dec 27 19:07:32 2012 -0500
Potential memory leak fixes.
src/gst/parole-gst.c | 16 ++++++++--------
src/parole-medialist.c | 3 ++-
src/parole-player.c | 30 ++++++++++++++++++++++--------
3 files changed, 32 insertions(+), 17 deletions(-)
diff --git a/src/gst/parole-gst.c b/src/gst/parole-gst.c
index 83b63af..1f9b0fd 100644
--- a/src/gst/parole-gst.c
+++ b/src/gst/parole-gst.c
@@ -1046,7 +1046,7 @@ parole_gst_tag_list_get_cover_external (ParoleGst *gst)
const gchar *listing = NULL;
gchar *lower = NULL;
gchar *cover = NULL;
- gchar *cover_filename;
+ gchar *cover_filename = NULL;
g_object_get (G_OBJECT (gst->priv->stream),
"uri", &uri,
@@ -1080,15 +1080,15 @@ parole_gst_tag_list_get_cover_external (ParoleGst *gst)
if (cover)
{
cover_filename = g_build_filename(directory, cover, NULL);
- g_free(uri);
- g_free(filename);
- g_free(directory);
- g_free(file_dir);
- g_free(lower);
- return cover_filename;
+ break;
}
}
- return NULL;
+ g_free(uri);
+ g_free(filename);
+ g_free(directory);
+ g_free(file_dir);
+ g_free(lower);
+ return cover_filename;
}
static const GValue *
diff --git a/src/parole-medialist.c b/src/parole-medialist.c
index 9ac532e..575808f 100644
--- a/src/parole-medialist.c
+++ b/src/parole-medialist.c
@@ -1099,14 +1099,15 @@ void
parole_media_list_clear_disc_list (ParoleMediaList *list)
{
gtk_list_store_clear (GTK_LIST_STORE (list->priv->disc_store));
- //parole_media_list_set_widget_sensitive (list, FALSE);
}
void
parole_media_list_clear_list (ParoleMediaList *list)
{
+ TRACE("CLEAR START");
gtk_list_store_clear (GTK_LIST_STORE (list->priv->store));
parole_media_list_set_widget_sensitive (list, FALSE);
+ TRACE("CLEAR END");
}
static void
diff --git a/src/parole-player.c b/src/parole-player.c
index 29dd32f..5192223 100644
--- a/src/parole-player.c
+++ b/src/parole-player.c
@@ -571,7 +571,7 @@ parole_player_reset (ParolePlayer *player)
gtk_window_set_title (GTK_WINDOW (player->priv->window), "Parole Media Player");
player->priv->audio_list = NULL;
player->priv->subtitle_list = NULL;
- player->priv->current_media_type = PAROLE_MEDIA_TYPE_UNKNOWN;
+
gtk_widget_hide(GTK_WIDGET(player->priv->infobar));
parole_player_change_range_value (player, 0);
@@ -582,8 +582,16 @@ parole_player_reset (ParolePlayer *player)
player->priv->row = NULL;
}
+ if (player->priv->current_media_type == PAROLE_MEDIA_TYPE_DVD)
+ {
+ TRACE("CLEAR DVD LIST");
+ parole_media_list_clear_disc_list (player->priv->list);
+ TRACE("END CLEAR DVD LIST");
+ }
+ player->priv->current_media_type = PAROLE_MEDIA_TYPE_UNKNOWN;
+
parole_media_list_set_playlist_view(player->priv->list, PAROLE_MEDIA_LIST_PLAYLIST_VIEW_STANDARD);
- //parole_media_list_clear_disc_list (player->priv->list);
+
}
static void
@@ -975,10 +983,6 @@ parole_player_media_activated_cb (ParoleMediaList *list, GtkTreeRowReference *ro
GtkTreeIter iter;
GtkTreeModel *model;
- //parole_player_reset (player);
-
- //player->priv->row = gtk_tree_row_reference_copy (row);
-
model = gtk_tree_row_reference_get_model (row);
if ( gtk_tree_model_get_iter (model, &iter, gtk_tree_row_reference_get_path (row)) )
@@ -1047,9 +1051,19 @@ parole_player_disc_selected_cb (ParoleDisc *disc, const gchar *uri, const gchar
player->priv->current_media_type = parole_gst_get_current_stream_type (PAROLE_GST (player->priv->gst));
if ( player->priv->current_media_type == PAROLE_MEDIA_TYPE_CDDA )
+ {
player->priv->wait_for_gst_disc_info = TRUE;
-
- parole_media_list_clear_list (player->priv->list);
+ if ( player->priv->row )
+ {
+ parole_media_list_set_row_pixbuf (player->priv->list, player->priv->row, NULL);
+ gtk_tree_row_reference_free (player->priv->row);
+ player->priv->row = NULL;
+ }
+ TRACE("CLEAR PLAYLIST");
+ parole_media_list_clear_list (player->priv->list);
+ TRACE("END CLEAR PLAYLIST");
+ }
+ else
parole_media_list_set_playlist_view(player->priv->list, PAROLE_MEDIA_LIST_PLAYLIST_VIEW_DISC);
}
More information about the Xfce4-commits
mailing list