diff --git a/src/db/update/Service.cxx b/src/db/update/Service.cxx
index 2cc7e95eb..7363656a0 100644
--- a/src/db/update/Service.cxx
+++ b/src/db/update/Service.cxx
@@ -169,7 +169,7 @@ UpdateService::GenerateId() noexcept
 }
 
 unsigned
-UpdateService::Enqueue(const char *_path, bool discard)
+UpdateService::Enqueue(std::string_view path, bool discard)
 {
 	assert(GetEventLoop().IsInside());
 
@@ -178,8 +178,6 @@ UpdateService::Enqueue(const char *_path, bool discard)
 	SimpleDatabase *db2;
 	Storage *storage2;
 
-	std::string_view path(_path);
-
 	Directory::LookupResult lr;
 	{
 		const ScopeDatabaseLock protect;
diff --git a/src/db/update/Service.hxx b/src/db/update/Service.hxx
index 15541e286..63fba3776 100644
--- a/src/db/update/Service.hxx
+++ b/src/db/update/Service.hxx
@@ -27,6 +27,7 @@
 #include "util/Compiler.h"
 
 #include <memory>
+#include <string_view>
 
 class SimpleDatabase;
 class DatabaseListener;
@@ -90,7 +91,7 @@ public:
 	 * @return the job id
 	 */
 	gcc_nonnull_all
-	unsigned Enqueue(const char *path, bool discard);
+	unsigned Enqueue(std::string_view path, bool discard);
 
 	/**
 	 * Clear the queue and cancel the current update.  Does not