diff options
Diffstat (limited to 'src/core/file_sys')
| -rw-r--r-- | src/core/file_sys/content_archive.cpp | 5 | ||||
| -rw-r--r-- | src/core/file_sys/content_archive.h | 7 | ||||
| -rw-r--r-- | src/core/file_sys/vfs.cpp | 12 |
3 files changed, 16 insertions, 8 deletions
diff --git a/src/core/file_sys/content_archive.cpp b/src/core/file_sys/content_archive.cpp index 6cfef774d..d6b20c047 100644 --- a/src/core/file_sys/content_archive.cpp +++ b/src/core/file_sys/content_archive.cpp @@ -2,6 +2,9 @@ // Licensed under GPLv2 or any later version // Refer to the license.txt file included. +#include <algorithm> +#include <utility> + #include "common/logging/log.h" #include "core/file_sys/content_archive.h" #include "core/file_sys/vfs_offset.h" @@ -61,7 +64,7 @@ struct RomFSSuperblock { }; static_assert(sizeof(RomFSSuperblock) == 0xE8, "RomFSSuperblock has incorrect size."); -NCA::NCA(VirtualFile file_) : file(file_) { +NCA::NCA(VirtualFile file_) : file(std::move(file_)) { if (sizeof(NCAHeader) != file->ReadObject(&header)) LOG_CRITICAL(Loader, "File reader errored out during header read."); diff --git a/src/core/file_sys/content_archive.h b/src/core/file_sys/content_archive.h index 129a70b97..0b8b9db61 100644 --- a/src/core/file_sys/content_archive.h +++ b/src/core/file_sys/content_archive.h @@ -4,6 +4,11 @@ #pragma once +#include <array> +#include <memory> +#include <string> +#include <vector> + #include "common/common_funcs.h" #include "common/common_types.h" #include "common/swap.h" @@ -48,7 +53,7 @@ struct NCAHeader { }; static_assert(sizeof(NCAHeader) == 0x400, "NCAHeader has incorrect size."); -inline bool IsDirectoryExeFS(std::shared_ptr<FileSys::VfsDirectory> pfs) { +inline bool IsDirectoryExeFS(const std::shared_ptr<VfsDirectory>& pfs) { // According to switchbrew, an exefs must only contain these two files: return pfs->GetFile("main") != nullptr && pfs->GetFile("main.npdm") != nullptr; } diff --git a/src/core/file_sys/vfs.cpp b/src/core/file_sys/vfs.cpp index f859ef33f..16c8ad90b 100644 --- a/src/core/file_sys/vfs.cpp +++ b/src/core/file_sys/vfs.cpp @@ -116,14 +116,14 @@ bool VfsDirectory::IsRoot() const { size_t VfsDirectory::GetSize() const { const auto& files = GetFiles(); - const auto file_total = - std::accumulate(files.begin(), files.end(), 0ull, - [](const auto& f1, const auto& f2) { return f1 + f2->GetSize(); }); + const auto sum_sizes = [](const auto& range) { + return std::accumulate(range.begin(), range.end(), 0ULL, + [](const auto& f1, const auto& f2) { return f1 + f2->GetSize(); }); + }; + const auto file_total = sum_sizes(files); const auto& sub_dir = GetSubdirectories(); - const auto subdir_total = - std::accumulate(sub_dir.begin(), sub_dir.end(), 0ull, - [](const auto& f1, const auto& f2) { return f1 + f2->GetSize(); }); + const auto subdir_total = sum_sizes(sub_dir); return file_total + subdir_total; } |
