aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorMax Kellermann <max@duempel.org>2009-02-10 17:55:08 +0100
committerMax Kellermann <max@duempel.org>2009-02-10 17:55:08 +0100
commit34244398d01b4182558f45c6363be62d37c29b50 (patch)
treed9971ba9d98ad5a832f88cb2245a33c08f14446a /src
parente8787ac4a4430bb30bfba0b5154111370e89133b (diff)
downloadmpd-34244398d01b4182558f45c6363be62d37c29b50.tar.gz
mpd-34244398d01b4182558f45c6363be62d37c29b50.tar.xz
mpd-34244398d01b4182558f45c6363be62d37c29b50.zip
playlist: fix assertion when last/current song is deleted
When MPD is stopped, but the last song is still the "current song", and you delete it, playlist->current is not updated, and becomes an invalid value. Fix this by catching "!playlist->playing && playlist->current == (int)songOrder".
Diffstat (limited to 'src')
-rw-r--r--src/playlist_edit.c5
1 files changed, 4 insertions, 1 deletions
diff --git a/src/playlist_edit.c b/src/playlist_edit.c
index 008ae3147..1a76273b4 100644
--- a/src/playlist_edit.c
+++ b/src/playlist_edit.c
@@ -243,7 +243,10 @@ deleteFromPlaylist(struct playlist *playlist, unsigned song)
stopPlaylist(playlist);
queued = NULL;
- }
+ } else if (playlist->current == (int)songOrder)
+ /* there's a "current song" but we're not playing
+ currently - clear "current" */
+ playlist->current = -1;
/* now do it: remove the song */