diff options
| author | 2020-04-17 17:02:35 -0400 | |
|---|---|---|
| committer | 2020-04-17 17:02:35 -0400 | |
| commit | 775ecc7d055ff0fe0b9cfad7485581b64a1d8762 (patch) | |
| tree | 0dc512381d80077409a02f0b10e43f22586e9466 /src/common/file_util.cpp | |
| parent | Merge pull request #3666 from bunnei/new-vmm (diff) | |
| parent | file_util: Early-exit in WriteArray and ReadArray if specified lengths are zero (diff) | |
| download | yuzu-775ecc7d055ff0fe0b9cfad7485581b64a1d8762.tar.gz yuzu-775ecc7d055ff0fe0b9cfad7485581b64a1d8762.tar.xz yuzu-775ecc7d055ff0fe0b9cfad7485581b64a1d8762.zip | |
Merge pull request #3672 from lioncash/null
file_util: Early-exit in WriteArray and ReadArray if specified lengths are zero
Diffstat (limited to 'src/common/file_util.cpp')
| -rw-r--r-- | src/common/file_util.cpp | 28 |
1 files changed, 28 insertions, 0 deletions
diff --git a/src/common/file_util.cpp b/src/common/file_util.cpp index 35eee0096..7f613891b 100644 --- a/src/common/file_util.cpp +++ b/src/common/file_util.cpp | |||
| @@ -967,6 +967,34 @@ bool IOFile::Flush() { | |||
| 967 | return IsOpen() && 0 == std::fflush(m_file); | 967 | return IsOpen() && 0 == std::fflush(m_file); |
| 968 | } | 968 | } |
| 969 | 969 | ||
| 970 | std::size_t IOFile::ReadImpl(void* data, std::size_t length, std::size_t data_size) const { | ||
| 971 | if (!IsOpen()) { | ||
| 972 | return std::numeric_limits<std::size_t>::max(); | ||
| 973 | } | ||
| 974 | |||
| 975 | if (length == 0) { | ||
| 976 | return 0; | ||
| 977 | } | ||
| 978 | |||
| 979 | DEBUG_ASSERT(data != nullptr); | ||
| 980 | |||
| 981 | return std::fread(data, data_size, length, m_file); | ||
| 982 | } | ||
| 983 | |||
| 984 | std::size_t IOFile::WriteImpl(const void* data, std::size_t length, std::size_t data_size) { | ||
| 985 | if (!IsOpen()) { | ||
| 986 | return std::numeric_limits<std::size_t>::max(); | ||
| 987 | } | ||
| 988 | |||
| 989 | if (length == 0) { | ||
| 990 | return 0; | ||
| 991 | } | ||
| 992 | |||
| 993 | DEBUG_ASSERT(data != nullptr); | ||
| 994 | |||
| 995 | return std::fwrite(data, data_size, length, m_file); | ||
| 996 | } | ||
| 997 | |||
| 970 | bool IOFile::Resize(u64 size) { | 998 | bool IOFile::Resize(u64 size) { |
| 971 | return IsOpen() && 0 == | 999 | return IsOpen() && 0 == |
| 972 | #ifdef _WIN32 | 1000 | #ifdef _WIN32 |