Merge tag 'v0.20.22'

release v0.20.22
This commit is contained in:
Max Kellermann
2018-10-23 20:10:57 +02:00
5 changed files with 33 additions and 13 deletions

View File

@@ -64,7 +64,12 @@ fluidsynth_level_to_mpd(enum fluid_log_level level)
* logging library.
*/
static void
fluidsynth_mpd_log_function(int level, char *message, gcc_unused void *data)
fluidsynth_mpd_log_function(int level,
#if FLUIDSYNTH_VERSION_MAJOR >= 2
const
#endif
char *message,
void *)
{
Log(fluidsynth_domain,
fluidsynth_level_to_mpd(fluid_log_level(level)),

View File

@@ -30,7 +30,15 @@
* exist? This function attempts to recognize exceptions thrown by
* various input plugins.
*/
#ifndef __clang__
/* the "pure" attribute must be disabled because it triggers a clang
bug, wrongfully leading to std::terminate() even though the
function catches all exceptions thrown by std::rethrow_exception();
this can be reproduced with clang 7 from Android NDK r18b and on
clang 6 on FreeBSD
(https://github.com/MusicPlayerDaemon/MPD/issues/373) */
gcc_pure
#endif
bool
IsFileNotFound(std::exception_ptr e) noexcept;

View File

@@ -54,15 +54,6 @@ TagSongFilter::MatchNN(const Tag &tag) const noexcept
}
if (type < TAG_NUM_OF_ITEM_TYPES && !visited_types[type]) {
/* 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 (filter.empty())
return true;
bool result = false;
if (ApplyTagFallback(type,
[&](TagType tag2) {
@@ -80,6 +71,15 @@ TagSongFilter::MatchNN(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 (filter.empty())
return true;
}
return false;