diff --git a/src/audio/track_queue.cpp b/src/audio/track_queue.cpp index b1cacc00..331aa756 100644 --- a/src/audio/track_queue.cpp +++ b/src/audio/track_queue.cpp @@ -100,6 +100,7 @@ auto TrackQueue::AddNext(std::shared_ptr src) -> void { auto TrackQueue::IncludeNext(std::shared_ptr src) -> void { + assert(src.get() != nullptr); const std::lock_guard lock(mutex_); enqueued_.push_front(src); @@ -128,6 +129,7 @@ auto TrackQueue::AddLast(std::shared_ptr src) -> void { auto TrackQueue::IncludeLast(std::shared_ptr src) -> void { + assert(src.get() != nullptr); const std::lock_guard lock(mutex_); enqueued_.push_back(src); diff --git a/src/playlist/source.cpp b/src/playlist/source.cpp index d51d97ab..7a062bc7 100644 --- a/src/playlist/source.cpp +++ b/src/playlist/source.cpp @@ -139,9 +139,12 @@ auto IndexRecordSource::Peek(std::size_t n, std::vector* out) working_item = 0; } - out->push_back(working_page->values().at(working_item)->track().value()); - n--; - items_added++; + auto record = working_page->values().at(working_item); + if (record->track()) { + out->push_back(record->track().value()); + n--; + items_added++; + } working_item++; }