diff --git a/NEWS b/NEWS index e87043daa..308aa0551 100644 --- a/NEWS +++ b/NEWS @@ -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 diff --git a/src/queue/PlaylistControl.cxx b/src/queue/PlaylistControl.cxx index 018ddcbb7..c71f29ba2 100644 --- a/src/queue/PlaylistControl.cxx +++ b/src/queue/PlaylistControl.cxx @@ -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; }