diff options
author | Max Kellermann <max@duempel.org> | 2009-02-10 17:55:08 +0100 |
---|---|---|
committer | Max Kellermann <max@duempel.org> | 2009-02-10 17:55:08 +0100 |
commit | 34244398d01b4182558f45c6363be62d37c29b50 (patch) | |
tree | d9971ba9d98ad5a832f88cb2245a33c08f14446a | |
parent | e8787ac4a4430bb30bfba0b5154111370e89133b (diff) | |
download | mpd-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".
-rw-r--r-- | src/playlist_edit.c | 5 |
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 */ |