diff --git a/src/database/DbArtist.cpp b/src/database/DbArtist.cpp index b9dfb1ed..87d90567 100644 --- a/src/database/DbArtist.cpp +++ b/src/database/DbArtist.cpp @@ -143,7 +143,7 @@ std::vector> Artist::getReleases(const std::set& clusterIds) const { assert(self()); - assert(self()->id() != Wt::Dbo::dbo_traits::invalidId() ); + assert(IdIsValid(self()->id())); assert(session()); WhereClause where; @@ -188,7 +188,7 @@ std::vector>> Artist::getClusterGroups(std::vector clusterTypes, std::size_t size) const { assert(self()); - assert(self()->id() != Wt::Dbo::dbo_traits::invalidId() ); + assert(IdIsValid(self()->id())); assert(session()); WhereClause where; diff --git a/src/database/Playlist.cpp b/src/database/Playlist.cpp index 0b52b86c..ca5cccd1 100644 --- a/src/database/Playlist.cpp +++ b/src/database/Playlist.cpp @@ -87,6 +87,7 @@ std::vector> Playlist::getEntries(int offset, int size, bool& moreResults) const { assert(session()); + assert(IdIsValid(self()->id())); moreResults = false; diff --git a/src/database/Release.cpp b/src/database/Release.cpp index d1a302dc..c5f610e9 100644 --- a/src/database/Release.cpp +++ b/src/database/Release.cpp @@ -166,7 +166,7 @@ std::vector> Release::getArtists() const { assert(self()); - assert(self()->id() != Wt::Dbo::dbo_traits::invalidId() ); + assert(IdIsValid(self()->id())); assert(session()); Wt::Dbo::collection> res = session()->query>( diff --git a/src/database/Track.cpp b/src/database/Track.cpp index 6b553258..aeedf327 100644 --- a/src/database/Track.cpp +++ b/src/database/Track.cpp @@ -214,7 +214,7 @@ std::vector> Track::getClusterGroups(std::vector clusterTypes, std::size_t size) const { assert(self()); - assert(self()->id() != Wt::Dbo::dbo_traits::invalidId() ); + assert(IdIsValid(self()->id())); assert(session()); WhereClause where; @@ -322,7 +322,7 @@ Cluster::pointer ClusterType::getCluster(std::string name) const { assert(self()); - assert(self()->id() != Wt::Dbo::dbo_traits::invalidId() ); + assert(IdIsValid(self()->id())); assert(session()); return session()->find() @@ -334,7 +334,7 @@ std::vector ClusterType::getClusters() const { assert(self()); - assert(self()->id() != Wt::Dbo::dbo_traits::invalidId() ); + assert(IdIsValid(self()->id())); assert(session()); Wt::Dbo::collection res = session()->find() diff --git a/src/database/Track.hpp b/src/database/Track.hpp index 9fc4f3a8..c367fc98 100644 --- a/src/database/Track.hpp +++ b/src/database/Track.hpp @@ -120,7 +120,7 @@ class ClusterType : public Wt::Dbo::Dbo Wt::Dbo::collection< Wt::Dbo::ptr > _clusters; }; -class Track : public Wt::Dbo::Dbo +class Track : public Wt::Dbo::Dbo { public: diff --git a/src/database/Types.hpp b/src/database/Types.hpp index 5aa1644f..2ff23abd 100644 --- a/src/database/Types.hpp +++ b/src/database/Types.hpp @@ -23,5 +23,10 @@ namespace Database { using IdType = Wt::Dbo::dbo_default_traits::IdType; + + static inline bool IdIsValid(IdType id) + { + return id != Wt::Dbo::dbo_default_traits::invalidId(); + } } diff --git a/src/ui/explore/TracksView.cpp b/src/ui/explore/TracksView.cpp index 5b7796e1..2d1d53ee 100644 --- a/src/ui/explore/TracksView.cpp +++ b/src/ui/explore/TracksView.cpp @@ -136,15 +136,13 @@ Tracks::addSome() entry->bindString("name", Wt::WString::fromUTF8(track->getName()), Wt::TextFormat::Plain); - auto artist = track->getArtist(); - if (artist) + if (track->getArtist()) { entry->setCondition("if-has-artist", true); entry->bindWidget("artist-name", LmsApplication::createArtistAnchor(track->getArtist())); } - auto release = track->getRelease(); - if (release) + if (track->getRelease()) { entry->setCondition("if-has-release", true); entry->bindWidget("release-name", LmsApplication::createReleaseAnchor(track->getRelease())); @@ -157,7 +155,7 @@ Tracks::addSome() Wt::WContainerWidget* clusterContainers = entry->bindNew("clusters"); { auto clusterTypes = getClusterTypesFromSetting(trackClusterTypesSetting); - auto clusterGroups = release->getClusterGroups(clusterTypes, 1); + auto clusterGroups = track->getClusterGroups(clusterTypes, 1); for (auto clusters : clusterGroups) {