Queue: FindByReference() cannot fail
authorMax Kellermann <max@musicpd.org>
Tue, 4 Sep 2018 08:30:44 +0000 (10:30 +0200)
committerMax Kellermann <max@musicpd.org>
Tue, 4 Sep 2018 08:30:44 +0000 (10:30 +0200)
src/Queue.cxx
src/Queue.hxx

index 46afa03..932dbec 100644 (file)
@@ -62,14 +62,15 @@ MpdQueue::Move(unsigned dest, unsigned src)
        items[dest] = std::move(song);
 }
 
-int
+MpdQueue::size_type
 MpdQueue::FindByReference(const struct mpd_song &song) const
 {
-       for (size_type i = 0; i < size(); ++i)
+       for (size_type i = 0;; ++i) {
+               assert(i < size());
+
                if (&(*this)[i] == &song)
                        return i;
-
-       return -1;
+       }
 }
 
 int
index e944987..561b7c0 100644 (file)
@@ -94,7 +94,7 @@ struct MpdQueue {
         * @return the song position
         */
        gcc_pure
-       int FindByReference(const struct mpd_song &song) const;
+       size_type FindByReference(const struct mpd_song &song) const;
 
        /**
         * Find a song by its id.