storage/Interface: wrap StorageDirectoryReader in std::unique_ptr

This commit is contained in:
Max Kellermann
2018-01-21 11:04:30 +01:00
parent a9847ebf54
commit 61eb2aa328
9 changed files with 29 additions and 33 deletions

View File

@@ -67,7 +67,7 @@ public:
/* virtual methods from class Storage */
StorageFileInfo GetInfo(const char *uri_utf8, bool follow) override;
StorageDirectoryReader *OpenDirectory(const char *uri_utf8) override;
std::unique_ptr<StorageDirectoryReader> OpenDirectory(const char *uri_utf8) override;
std::string MapUTF8(const char *uri_utf8) const noexcept override;
@@ -124,7 +124,7 @@ SmbclientStorage::GetInfo(const char *uri_utf8, gcc_unused bool follow)
return ::GetInfo(mapped.c_str());
}
StorageDirectoryReader *
std::unique_ptr<StorageDirectoryReader>
SmbclientStorage::OpenDirectory(const char *uri_utf8)
{
std::string mapped = MapUTF8(uri_utf8);
@@ -138,7 +138,8 @@ SmbclientStorage::OpenDirectory(const char *uri_utf8)
throw MakeErrno("Failed to open directory");
}
return new SmbclientDirectoryReader(std::move(mapped.c_str()), handle);
return std::make_unique<SmbclientDirectoryReader>(std::move(mapped.c_str()),
handle);
}
gcc_pure