summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLars-Dominik Braun <lars@6xq.net>2012-09-17 11:26:09 +0200
committerLars-Dominik Braun <lars@6xq.net>2012-09-17 11:26:09 +0200
commite3d8f497baaf02daeddb060cd986681d0ee208de (patch)
treebd7f555e89662d0d9a1611e2901892d860e09df1
parent5b2a121673f573b46eed00ccf9a38ab40ec3708b (diff)
downloadpianobar-windows-e3d8f497baaf02daeddb060cd986681d0ee208de.tar.gz
pianobar-windows-e3d8f497baaf02daeddb060cd986681d0ee208de.tar.bz2
pianobar-windows-e3d8f497baaf02daeddb060cd986681d0ee208de.zip
Fix history memory leak
With `history = 0` playlist items are discarded, but not freed.
-rw-r--r--src/main.c1
-rw-r--r--src/ui.c2
2 files changed, 3 insertions, 0 deletions
diff --git a/src/main.c b/src/main.c
index 174d144..f011c5a 100644
--- a/src/main.c
+++ b/src/main.c
@@ -301,6 +301,7 @@ static void BarMainLoop (BarApp_t *app) {
if (app->playlist != NULL) {
PianoSong_t *histsong = app->playlist;
app->playlist = app->playlist->next;
+ histsong->next = NULL;
BarUiHistoryPrepend (app, histsong);
}
if (app->playlist == NULL) {
diff --git a/src/ui.c b/src/ui.c
index 8543018..d5def60 100644
--- a/src/ui.c
+++ b/src/ui.c
@@ -894,6 +894,8 @@ void BarUiHistoryPrepend (BarApp_t *app, PianoSong_t *song) {
PianoDestroyPlaylist (delSong);
}
}
+ } else {
+ PianoDestroyPlaylist (song);
}
}