SongFilter: check value.empty() after checking tag fallbacks
In this new order, a filter 'AlbumArtist ""' matches only on songs which neither have `AlbumArtist` nor `Artist`.
This commit is contained in:
@@ -110,15 +110,6 @@ SongFilter::Item::Match(const Tag &_tag) const noexcept
|
||||
}
|
||||
|
||||
if (tag < TAG_NUM_OF_ITEM_TYPES && !visited_types[tag]) {
|
||||
/* If the search critieron was not visited during the
|
||||
sweep through the song's tag, it means this field
|
||||
is absent from the tag or empty. Thus, if the
|
||||
searched string is also empty
|
||||
then it's a match as well and we should return
|
||||
true. */
|
||||
if (value.empty())
|
||||
return true;
|
||||
|
||||
bool result = false;
|
||||
if (ApplyTagFallback(TagType(tag),
|
||||
[&](TagType tag2) {
|
||||
@@ -136,6 +127,15 @@ SongFilter::Item::Match(const Tag &_tag) const noexcept
|
||||
return true;
|
||||
}))
|
||||
return result;
|
||||
|
||||
/* If the search critieron was not visited during the
|
||||
sweep through the song's tag, it means this field
|
||||
is absent from the tag or empty. Thus, if the
|
||||
searched string is also empty
|
||||
then it's a match as well and we should return
|
||||
true. */
|
||||
if (value.empty())
|
||||
return true;
|
||||
}
|
||||
|
||||
return false;
|
||||
|
Reference in New Issue
Block a user