From 44a6ad0d78e3939e937bab71c9c2141848235903 Mon Sep 17 00:00:00 2001 From: Anna Schumaker Date: Mon, 1 Aug 2016 12:05:24 -0400 Subject: [PATCH] gui/playlist: Make sure we free text from tree_model_get() Otherwise this leads to a memory leak. Signed-off-by: Anna Schumaker --- CHANGELOG | 3 +++ gui/playlist.c | 11 +++++------ 2 files changed, 8 insertions(+), 6 deletions(-) diff --git a/CHANGELOG b/CHANGELOG index b1b384bc..06b12f8f 100644 --- a/CHANGELOG +++ b/CHANGELOG @@ -1,3 +1,6 @@ +6.4.17: +- Fix memory leak in __playlist_name() + 6.4.17-rc: - Filter can use GHashTables directly - Filter can store track pointers instead of indexes diff --git a/gui/playlist.c b/gui/playlist.c index c7d0c454..89a1ecf2 100644 --- a/gui/playlist.c +++ b/gui/playlist.c @@ -51,19 +51,18 @@ static void __playlist_add(GtkTreeIter *parent, const gchar *name, static gchar *__playlist_name(GtkTreeIter *iter) { GtkTreeModel *model = GTK_TREE_MODEL(p_store); - gchar **split, *text, *name; + gchar *text, *parsed, *name, **split; gtk_tree_model_get(model, iter, P_SB_NAME, &text, -1); if (!text) return NULL; + pango_parse_markup(text, -1, 0, NULL, &parsed, NULL, NULL); + split = g_strsplit(parsed, "\n", 2); + name = g_strdup(split[0]); - split = g_strsplit(text, "\n", 2); - text = g_strdup(split[0]); g_strfreev(split); - - pango_parse_markup(text, -1, 0, NULL, &name, NULL, NULL); g_free(text); - + g_free(parsed); return name; }