From 085d7bcff8091a61b27b2fcbb732be6220eca619 Mon Sep 17 00:00:00 2001 From: Green Sky Date: Tue, 22 Aug 2023 17:17:41 +0200 Subject: [PATCH] fix support for files >4gig (32bit vs 64bit size numbers) --- solanaceae/message3/file.hpp | 2 +- solanaceae/message3/file_r_file.hpp | 2 +- solanaceae/message3/file_r_mem.hpp | 2 +- solanaceae/message3/file_rw_file.hpp | 2 +- solanaceae/message3/file_w_file.hpp | 2 +- 5 files changed, 5 insertions(+), 5 deletions(-) diff --git a/solanaceae/message3/file.hpp b/solanaceae/message3/file.hpp index 496db8a..03ca294 100644 --- a/solanaceae/message3/file.hpp +++ b/solanaceae/message3/file.hpp @@ -14,7 +14,7 @@ struct FileI { virtual bool isGood(void) = 0; // TODO: move to owning/nonowning pointers - virtual std::vector read(uint64_t pos, uint32_t size) = 0; + virtual std::vector read(uint64_t pos, uint64_t size) = 0; virtual bool write(uint64_t pos, const std::vector& data) = 0; }; diff --git a/solanaceae/message3/file_r_file.hpp b/solanaceae/message3/file_r_file.hpp index fccdebf..c7c4483 100644 --- a/solanaceae/message3/file_r_file.hpp +++ b/solanaceae/message3/file_r_file.hpp @@ -29,7 +29,7 @@ struct FileRFile : public FileI { return _file.is_open() && _file.good(); } - std::vector read(uint64_t pos, uint32_t size) override { + std::vector read(uint64_t pos, uint64_t size) override { if (_file_size > 0 && pos >= _file_size) { return {}; } diff --git a/solanaceae/message3/file_r_mem.hpp b/solanaceae/message3/file_r_mem.hpp index 7a68e31..9863514 100644 --- a/solanaceae/message3/file_r_mem.hpp +++ b/solanaceae/message3/file_r_mem.hpp @@ -15,7 +15,7 @@ struct FileRMem : public FileI { return true; } - std::vector read(uint64_t pos, uint32_t size) override { + std::vector read(uint64_t pos, uint64_t size) override { if (_file_size > 0 && pos >= _data.size()) { return {}; } diff --git a/solanaceae/message3/file_rw_file.hpp b/solanaceae/message3/file_rw_file.hpp index 3c6f470..b3ccf61 100644 --- a/solanaceae/message3/file_rw_file.hpp +++ b/solanaceae/message3/file_rw_file.hpp @@ -29,7 +29,7 @@ struct FileRWFile : public FileI { return _file.is_open() && _file.good(); } - std::vector read(uint64_t pos, uint32_t size) override { + std::vector read(uint64_t pos, uint64_t size) override { if (pos >= _file_size) { return {}; } diff --git a/solanaceae/message3/file_w_file.hpp b/solanaceae/message3/file_w_file.hpp index 80e9129..fd210e5 100644 --- a/solanaceae/message3/file_w_file.hpp +++ b/solanaceae/message3/file_w_file.hpp @@ -23,7 +23,7 @@ struct FileWFile : public FileI { } // write only - std::vector read(uint64_t, uint32_t) override { return {}; } + std::vector read(uint64_t, uint64_t) override { return {}; } bool write(uint64_t pos, const std::vector& data) override { if (_file_size > 0 && pos >= _file_size) {