diff --git a/src/db/update/SpecialDirectory.cxx b/src/db/update/SpecialDirectory.cxx
index bcd2f2999..7cc5277d1 100644
--- a/src/db/update/SpecialDirectory.cxx
+++ b/src/db/update/SpecialDirectory.cxx
@@ -9,11 +9,11 @@
 
 [[gnu::pure]]
 static bool
-HaveArchivePluginForFilename(const char *filename) noexcept
+HaveArchivePluginForFilename(std::string_view filename) noexcept
 {
 #ifdef ENABLE_ARCHIVE
-	const char *suffix = PathTraitsUTF8::GetFilenameSuffix(filename);
-	return suffix != nullptr &&
+	const auto suffix = PathTraitsUTF8::GetFilenameSuffix(filename);
+	return !suffix.empty() &&
 		archive_plugin_from_suffix(suffix) != nullptr;
 #else
 	(void)filename;
@@ -23,20 +23,20 @@ HaveArchivePluginForFilename(const char *filename) noexcept
 
 [[gnu::pure]]
 static bool
-HaveContainerPluginForFilename(const char *filename) noexcept
+HaveContainerPluginForFilename(std::string_view filename) noexcept
 {
-	const char *suffix = PathTraitsUTF8::GetFilenameSuffix(filename);
-	return suffix != nullptr &&
+	const auto suffix = PathTraitsUTF8::GetFilenameSuffix(filename);
+	return !suffix.empty() &&
 		// TODO: check if this plugin really supports containers
 		decoder_plugins_supports_suffix(suffix);
 }
 
 [[gnu::pure]]
 static bool
-HavePlaylistPluginForFilename(const char *filename) noexcept
+HavePlaylistPluginForFilename(std::string_view filename) noexcept
 {
-	const char *suffix = PathTraitsUTF8::GetFilenameSuffix(filename);
-	if (suffix == nullptr)
+	const auto suffix = PathTraitsUTF8::GetFilenameSuffix(filename);
+	if (suffix.empty())
 		return false;
 
 	const auto plugin = FindPlaylistPluginBySuffix(suffix);