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; }