From be081929f4523376db2df52903230d3b20dc54e9 Mon Sep 17 00:00:00 2001 From: Max Kellermann Date: Fri, 7 Feb 2014 23:41:06 +0100 Subject: storage/local: remove utf8 path from constructor Build the UTF-8 version of the path automatically in the constructor. --- src/Main.cxx | 5 +---- src/storage/plugins/LocalStorage.cxx | 13 ++++++++----- src/storage/plugins/LocalStorage.hxx | 2 +- 3 files changed, 10 insertions(+), 10 deletions(-) (limited to 'src') diff --git a/src/Main.cxx b/src/Main.cxx index eb71372eb..82e0145cd 100644 --- a/src/Main.cxx +++ b/src/Main.cxx @@ -162,10 +162,7 @@ InitStorage(Error &error) path_fs.ChopSeparators(); CheckDirectoryReadable(path_fs); - const auto utf8 = path_fs.ToUTF8(); - assert(!utf8.empty()); - - instance->storage = CreateLocalStorage(utf8.c_str(), path_fs); + instance->storage = CreateLocalStorage(path_fs); return true; } diff --git a/src/storage/plugins/LocalStorage.cxx b/src/storage/plugins/LocalStorage.cxx index 5020a8fd6..2bf430b2e 100644 --- a/src/storage/plugins/LocalStorage.cxx +++ b/src/storage/plugins/LocalStorage.cxx @@ -50,12 +50,15 @@ public: }; class LocalStorage final : public Storage { - const std::string base_utf8; const AllocatedPath base_fs; + const std::string base_utf8; public: - LocalStorage(const char *_base_utf8, Path _base_fs) - :base_utf8(_base_utf8), base_fs(_base_fs) {} + explicit LocalStorage(Path _base_fs) + :base_fs(_base_fs), base_utf8(base_fs.ToUTF8()) { + assert(!base_fs.IsNull()); + assert(!base_utf8.empty()); + } /* virtual methods from class Storage */ virtual bool GetInfo(const char *uri_utf8, bool follow, FileInfo &info, @@ -203,7 +206,7 @@ LocalDirectoryReader::GetInfo(bool follow, FileInfo &info, Error &error) } Storage * -CreateLocalStorage(const char *base_utf8, Path base_fs) +CreateLocalStorage(Path base_fs) { - return new LocalStorage(base_utf8, base_fs); + return new LocalStorage(base_fs); } diff --git a/src/storage/plugins/LocalStorage.hxx b/src/storage/plugins/LocalStorage.hxx index cad2d1e58..e80fd8276 100644 --- a/src/storage/plugins/LocalStorage.hxx +++ b/src/storage/plugins/LocalStorage.hxx @@ -28,6 +28,6 @@ class Path; gcc_malloc gcc_nonnull_all Storage * -CreateLocalStorage(const char *base_utf8, Path base_fs); +CreateLocalStorage(Path base_fs); #endif -- cgit v1.2.3