queue/PlaylistControl: fix crash after seek failure

This completes the bug fix commit
2065e3290452377b2931f3129b230c8cc536cbc8; if we clear "queued" then we
must clear "queued_song" as well, or another variant of the assertion
fails.
This commit is contained in:
Max Kellermann 2018-01-05 13:00:24 +01:00
parent e3e90b4b93
commit cab77e35e0
2 changed files with 2 additions and 5 deletions

1
NEWS
View File

@ -1,4 +1,5 @@
ver 0.20.15 (not yet released)
* queue: fix crash after seek failure
* resampler
- soxr: clear internal state after manual song change
* state file

View File

@ -212,8 +212,6 @@ playlist::SeekSongOrder(PlayerControl &pc, unsigned i, SongTime seek_time)
{
assert(queue.IsValidOrder(i));
const DetachedSong *queued_song = GetQueuedSong();
pc.LockClearError();
stop_on_error = true;
error_count = 0;
@ -226,8 +224,6 @@ playlist::SeekSongOrder(PlayerControl &pc, unsigned i, SongTime seek_time)
playing = true;
current = i;
queued_song = nullptr;
}
queued = -1;
@ -235,7 +231,7 @@ playlist::SeekSongOrder(PlayerControl &pc, unsigned i, SongTime seek_time)
try {
pc.LockSeek(new DetachedSong(queue.GetOrder(i)), seek_time);
} catch (...) {
UpdateQueuedSong(pc, queued_song);
UpdateQueuedSong(pc, nullptr);
throw;
}