From c0a76a06b395ae797d2920b1e7c8dda4ec08f7a9 Mon Sep 17 00:00:00 2001 From: jrl Date: Mon, 8 May 2006 04:54:55 +0000 Subject: [PATCH] 2006-05-08 James Livingston * shell/rb-playlist-manager.c: (rb_playlist_manager_cmd_edit_automatic_playlist): * sources/rb-auto-playlist-source.c: (impl_save_contents_to_xml), (rb_auto_playlist_source_set_query), (rb_auto_playlist_source_get_query): copy the query in the _get method and free it in things calling that. Fixes a crasher. --- ChangeLog | 9 +++++++++ shell/rb-playlist-manager.c | 1 + sources/rb-auto-playlist-source.c | 5 +++-- 3 files changed, 13 insertions(+), 2 deletions(-) diff --git a/ChangeLog b/ChangeLog index 9c2d3a44..c7df1932 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,12 @@ +2006-05-08 James Livingston + + * shell/rb-playlist-manager.c: + (rb_playlist_manager_cmd_edit_automatic_playlist): + * sources/rb-auto-playlist-source.c: (impl_save_contents_to_xml), + (rb_auto_playlist_source_set_query), + (rb_auto_playlist_source_get_query): copy the query in the _get method + and free it in things calling that. Fixes a crasher. + 2006-05-08 Jonathan Matthew * rhythmdb/rhythmdb.c: (entry_volume_mounted_or_unmounted): diff --git a/shell/rb-playlist-manager.c b/shell/rb-playlist-manager.c index b5178a09..e6b455ec 100644 --- a/shell/rb-playlist-manager.c +++ b/shell/rb-playlist-manager.c @@ -1105,6 +1105,7 @@ rb_playlist_manager_cmd_edit_automatic_playlist (GtkAction *action, query, limit_count, limit_size, limit_time, sort_key, sort_direction)); + rhythmdb_query_free (query); data = g_new0 (EditAutoPlaylistData, 1); data->mgr = mgr; diff --git a/sources/rb-auto-playlist-source.c b/sources/rb-auto-playlist-source.c index 4f974c41..8c58dfd5 100644 --- a/sources/rb-auto-playlist-source.c +++ b/sources/rb-auto-playlist-source.c @@ -494,6 +494,7 @@ impl_save_contents_to_xml (RBPlaylistSource *psource, xmlNodePtr node) } rhythmdb_query_serialize (rb_playlist_source_get_db (psource), query, node); + rhythmdb_query_free (query); } static void @@ -586,7 +587,7 @@ rb_auto_playlist_source_set_query (RBAutoPlaylistSource *source, rb_entry_view_set_columns_clickable (songs, (limit_count == 0 && limit_mb == 0 && limit_time == 0)); rb_entry_view_set_sorting_order (songs, sort_key, sort_direction); - priv->query = query; + priv->query = rhythmdb_query_copy (query); priv->limit_count = limit_count; priv->limit_mb = limit_mb; priv->limit_time = limit_time; @@ -618,7 +619,7 @@ rb_auto_playlist_source_get_query (RBAutoPlaylistSource *source, RBAutoPlaylistSourcePrivate *priv = RB_AUTO_PLAYLIST_SOURCE_GET_PRIVATE (source); RBEntryView *songs = rb_source_get_entry_view (RB_SOURCE (source)); - *query = priv->query; + *query = rhythmdb_query_copy (priv->query); *limit_count = priv->limit_count; *limit_mb = priv->limit_mb; *limit_time = priv->limit_time; -- 2.11.4.GIT