1
0
Fork 0
forked from suyu/suyu

file_sys: tweaks

This commit is contained in:
shinyquagsire23 2018-04-16 06:51:59 -06:00
parent c03795300a
commit 83aa38b239
2 changed files with 7 additions and 6 deletions

View file

@ -3,6 +3,7 @@
// Refer to the license.txt file included. // Refer to the license.txt file included.
#include <cinttypes> #include <cinttypes>
#include <utility>
#include "common/file_util.h" #include "common/file_util.h"
#include "common/logging/log.h" #include "common/logging/log.h"
#include "core/file_sys/partition_filesystem.h" #include "core/file_sys/partition_filesystem.h"
@ -44,8 +45,8 @@ Loader::ResultStatus PartitionFilesystem::Load(const std::string& file_path, siz
return result; return result;
} }
Loader::ResultStatus PartitionFilesystem::Load(const std::vector<u8> file_data, size_t offset) { Loader::ResultStatus PartitionFilesystem::Load(const std::vector<u8>& file_data, size_t offset) {
size_t total_size = static_cast<size_t>(file_data.size() - offset); size_t total_size = file_data.size() - offset;
if (total_size < sizeof(Header)) if (total_size < sizeof(Header))
return Loader::ResultStatus::Error; return Loader::ResultStatus::Error;
@ -61,7 +62,7 @@ Loader::ResultStatus PartitionFilesystem::Load(const std::vector<u8> file_data,
memcpy(&entry.fs_entry, &file_data[entries_offset + (i * entry_size)], sizeof(FSEntry)); memcpy(&entry.fs_entry, &file_data[entries_offset + (i * entry_size)], sizeof(FSEntry));
entry.name = std::string(reinterpret_cast<const char*>( entry.name = std::string(reinterpret_cast<const char*>(
&file_data[strtab_offset + entry.fs_entry.strtab_offset])); &file_data[strtab_offset + entry.fs_entry.strtab_offset]));
pfs_entries.push_back(entry); pfs_entries.push_back(std::move(entry));
} }
content_offset = strtab_offset + pfs_header.strtab_size; content_offset = strtab_offset + pfs_header.strtab_size;
@ -69,7 +70,7 @@ Loader::ResultStatus PartitionFilesystem::Load(const std::vector<u8> file_data,
return Loader::ResultStatus::Success; return Loader::ResultStatus::Success;
} }
u32 PartitionFilesystem::GetNumEntries(void) const { u32 PartitionFilesystem::GetNumEntries() const {
return pfs_header.num_entries; return pfs_header.num_entries;
} }

View file

@ -24,9 +24,9 @@ namespace FileSys {
class PartitionFilesystem { class PartitionFilesystem {
public: public:
Loader::ResultStatus Load(const std::string& file_path, size_t offset = 0); Loader::ResultStatus Load(const std::string& file_path, size_t offset = 0);
Loader::ResultStatus Load(const std::vector<u8> file_data, size_t offset = 0); Loader::ResultStatus Load(const std::vector<u8>& file_data, size_t offset = 0);
u32 GetNumEntries(void) const; u32 GetNumEntries() const;
u64 GetEntryOffset(int index) const; u64 GetEntryOffset(int index) const;
u64 GetEntrySize(int index) const; u64 GetEntrySize(int index) const;
std::string GetEntryName(int index) const; std::string GetEntryName(int index) const;