storage/local: remove utf8 path from constructor
Build the UTF-8 version of the path automatically in the constructor.
This commit is contained in:
parent
b0b086d473
commit
be081929f4
|
@ -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;
|
||||
}
|
||||
|
||||
|
|
|
@ -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);
|
||||
}
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -38,9 +38,8 @@ uri_supported_scheme(const char *uri)
|
|||
return memcmp(uri, "http://", 7) == 0;
|
||||
}
|
||||
|
||||
const char *const music_directory = "/music";
|
||||
static Storage *const storage = CreateLocalStorage(music_directory,
|
||||
Path::FromFS(music_directory));
|
||||
static const char *const music_directory = "/music";
|
||||
static Storage *storage;
|
||||
|
||||
static void
|
||||
BuildTag(gcc_unused TagBuilder &tag)
|
||||
|
@ -308,6 +307,8 @@ CPPUNIT_TEST_SUITE_REGISTRATION(TranslateSongTest);
|
|||
int
|
||||
main(gcc_unused int argc, gcc_unused char **argv)
|
||||
{
|
||||
storage = CreateLocalStorage(Path::FromFS(music_directory));
|
||||
|
||||
CppUnit::TextUi::TestRunner runner;
|
||||
auto ®istry = CppUnit::TestFactoryRegistry::getRegistry();
|
||||
runner.addTest(registry.makeTest());
|
||||
|
|
Loading…
Reference in New Issue