3
0
Fork 0
forked from suyu/suyu

Merge pull request #2338 from lioncash/fs

filesystem: Use a std::string_view in OpenFile()
This commit is contained in:
bunnei 2019-04-05 10:52:54 -04:00 committed by GitHub
commit d6b7195192
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23

View file

@ -197,13 +197,16 @@ ResultCode VfsDirectoryServiceWrapper::RenameDirectory(const std::string& src_pa
ResultVal<FileSys::VirtualFile> VfsDirectoryServiceWrapper::OpenFile(const std::string& path_, ResultVal<FileSys::VirtualFile> VfsDirectoryServiceWrapper::OpenFile(const std::string& path_,
FileSys::Mode mode) const { FileSys::Mode mode) const {
std::string path(FileUtil::SanitizePath(path_)); const std::string path(FileUtil::SanitizePath(path_));
auto npath = path; std::string_view npath = path;
while (npath.size() > 0 && (npath[0] == '/' || npath[0] == '\\')) while (!npath.empty() && (npath[0] == '/' || npath[0] == '\\')) {
npath = npath.substr(1); npath.remove_prefix(1);
}
auto file = backing->GetFileRelative(npath); auto file = backing->GetFileRelative(npath);
if (file == nullptr) if (file == nullptr) {
return FileSys::ERROR_PATH_NOT_FOUND; return FileSys::ERROR_PATH_NOT_FOUND;
}
if (mode == FileSys::Mode::Append) { if (mode == FileSys::Mode::Append) {
return MakeResult<FileSys::VirtualFile>( return MakeResult<FileSys::VirtualFile>(