From 04c90ae3cf3be0423f5e0c4a0a97a40fb350a5bc Mon Sep 17 00:00:00 2001 From: emeric Date: Mon, 20 Jan 2025 23:23:53 +0100 Subject: [PATCH] Fixed abusive assert --- src/libs/database/impl/Release.cpp | 19 +++++++++++-------- 1 file changed, 11 insertions(+), 8 deletions(-) diff --git a/src/libs/database/impl/Release.cpp b/src/libs/database/impl/Release.cpp index 99cd72c2..9695c16a 100644 --- a/src/libs/database/impl/Release.cpp +++ b/src/libs/database/impl/Release.cpp @@ -497,18 +497,21 @@ namespace lms::db const char* field{ original ? "original_date" : "date" }; auto query{ session()->query(std::string{ "SELECT " } + "t." + field + " FROM track t").where("t.release_id = ?").bind(getId()).groupBy(field) }; - bool multiYears{}; + bool valid{ true }; std::optional year{}; utils::forEachQueryResult(query, [&](core::PartialDateTime dateTime) { - assert(dateTime.isValid()); - - if (!year) - year = dateTime.getYear().value(); - else if (*year != dateTime.getYear().value()) - multiYears = true; + if (!dateTime.isValid()) + valid = false; + else if (!year) + year = dateTime.getYear(); + else if (year != dateTime.getYear().value()) + valid = false; }); - if (multiYears) + if (!year) + valid = false; + + if (!valid) return std::nullopt; assert(year);