1
0
Fork 0

Fix build

Explicitly use `std::min<std::size_t>`

Added virtual destructor
This commit is contained in:
zhupengfei 2020-02-07 16:26:33 +08:00
parent eed9de2336
commit 6e0afbaa19
No known key found for this signature in database
GPG Key ID: DD129E108BD09378
3 changed files with 10 additions and 5 deletions

View File

@ -515,12 +515,13 @@ std::size_t LayeredFS::ReadFile(std::size_t offset, std::size_t length, u8* buff
const auto relative_offset = offset - current->first; const auto relative_offset = offset - current->first;
std::size_t to_read{}; std::size_t to_read{};
if (current->second->relocation.size > relative_offset) { if (current->second->relocation.size > relative_offset) {
to_read = to_read = std::min<std::size_t>(current->second->relocation.size - relative_offset,
std::min(current->second->relocation.size - relative_offset, length - read_size); length - read_size);
} }
const auto alignment = const auto alignment =
std::min(Common::AlignUp(current->second->relocation.size, 16) - relative_offset, std::min<std::size_t>(Common::AlignUp(current->second->relocation.size, 16) -
length - read_size) - relative_offset,
length - read_size) -
to_read; to_read;
// Read the file in different ways depending on relocation type // Read the file in different ways depending on relocation type

View File

@ -42,7 +42,7 @@ class LayeredFS : public RomFSReader {
public: public:
explicit LayeredFS(std::shared_ptr<RomFSReader> romfs, std::string patch_path, explicit LayeredFS(std::shared_ptr<RomFSReader> romfs, std::string patch_path,
std::string patch_ext_path); std::string patch_ext_path);
~LayeredFS(); ~LayeredFS() override;
std::size_t GetSize() const override; std::size_t GetSize() const override;
std::size_t ReadFile(std::size_t offset, std::size_t length, u8* buffer) override; std::size_t ReadFile(std::size_t offset, std::size_t length, u8* buffer) override;

View File

@ -11,6 +11,8 @@ namespace FileSys {
*/ */
class RomFSReader { class RomFSReader {
public: public:
virtual ~RomFSReader() = default;
virtual std::size_t GetSize() const = 0; virtual std::size_t GetSize() const = 0;
virtual std::size_t ReadFile(std::size_t offset, std::size_t length, u8* buffer) = 0; virtual std::size_t ReadFile(std::size_t offset, std::size_t length, u8* buffer) = 0;
}; };
@ -30,6 +32,8 @@ public:
: is_encrypted(true), file(std::move(file)), key(key), ctr(ctr), file_offset(file_offset), : is_encrypted(true), file(std::move(file)), key(key), ctr(ctr), file_offset(file_offset),
crypto_offset(crypto_offset), data_size(data_size) {} crypto_offset(crypto_offset), data_size(data_size) {}
~DirectRomFSReader() override = default;
std::size_t GetSize() const override { std::size_t GetSize() const override {
return data_size; return data_size;
} }