diff options
author | bunnei <bunneidev@gmail.com> | 2018-08-07 22:37:00 -0400 |
---|---|---|
committer | GitHub <noreply@github.com> | 2018-08-07 22:37:00 -0400 |
commit | 80cfd88e4ec5d2862227dedef5b9f709a8350319 (patch) | |
tree | d6fc13f86efe54ca4a6aec0c5a95ca56c5ca42cf /src | |
parent | 825e8cb9252cdffd3f150ef667ecb95655ab0696 (diff) | |
parent | 0735a0c8a11e62bbe0c7bed52c7c8a9a861b5ce4 (diff) |
Merge pull request #967 from lioncash/sign
file_util: Avoid sign-conversions in WriteArray() and ReadArray()
Diffstat (limited to 'src')
-rw-r--r-- | src/common/file_util.h | 12 |
1 files changed, 8 insertions, 4 deletions
diff --git a/src/common/file_util.h b/src/common/file_util.h index 28697d527..430dac41c 100644 --- a/src/common/file_util.h +++ b/src/common/file_util.h @@ -8,6 +8,7 @@ #include <cstdio> #include <fstream> #include <functional> +#include <limits> #include <string> #include <string_view> #include <type_traits> @@ -210,8 +211,9 @@ public: static_assert(std::is_trivially_copyable<T>(), "Given array does not consist of trivially copyable objects"); - if (!IsOpen()) - return -1; + if (!IsOpen()) { + return std::numeric_limits<size_t>::max(); + } return std::fread(data, sizeof(T), length, m_file); } @@ -220,8 +222,10 @@ public: size_t WriteArray(const T* data, size_t length) { static_assert(std::is_trivially_copyable<T>(), "Given array does not consist of trivially copyable objects"); - if (!IsOpen()) - return -1; + if (!IsOpen()) { + return std::numeric_limits<size_t>::max(); + } + return std::fwrite(data, sizeof(T), length, m_file); } |