aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--src/db/Helpers.cxx18
1 files changed, 12 insertions, 6 deletions
diff --git a/src/db/Helpers.cxx b/src/db/Helpers.cxx
index c6c7e3642..719fa8741 100644
--- a/src/db/Helpers.cxx
+++ b/src/db/Helpers.cxx
@@ -39,20 +39,26 @@ struct StringLess {
typedef std::set<const char *, StringLess> StringSet;
static bool
-CollectTags(StringSet &set, TagType tag_type, const LightSong &song)
+CheckUniqueTag(StringSet &set, const Tag &tag, TagType type)
{
- assert(song.tag != nullptr);
- const Tag &tag = *song.tag;
-
bool found = false;
for (unsigned i = 0; i < tag.num_items; ++i) {
- if (tag.items[i]->type == tag_type) {
+ if (tag.items[i]->type == type) {
set.insert(tag.items[i]->value);
found = true;
}
}
- if (!found)
+ return found;
+}
+
+static bool
+CollectTags(StringSet &set, TagType tag_type, const LightSong &song)
+{
+ assert(song.tag != nullptr);
+ const Tag &tag = *song.tag;
+
+ if (!CheckUniqueTag(set, tag, tag_type))
set.insert("");
return true;