summaryrefslogtreecommitdiff
path: root/zen/file_io.cpp
diff options
context:
space:
mode:
authorDaniel Wilhelm <shieldwed@outlook.com>2017-03-12 22:00:35 -0600
committerDaniel Wilhelm <shieldwed@outlook.com>2017-03-12 22:00:35 -0600
commit3ba62ef1de77153e5a8c7bad4451b96f6a1678b0 (patch)
treee6e69717e394a528a2e2aca3af036d4befaa9658 /zen/file_io.cpp
parent8.9 (diff)
downloadFreeFileSync-3ba62ef1de77153e5a8c7bad4451b96f6a1678b0.tar.gz
FreeFileSync-3ba62ef1de77153e5a8c7bad4451b96f6a1678b0.tar.bz2
FreeFileSync-3ba62ef1de77153e5a8c7bad4451b96f6a1678b0.zip
8.10
Diffstat (limited to 'zen/file_io.cpp')
-rwxr-xr-xzen/file_io.cpp5
1 files changed, 3 insertions, 2 deletions
diff --git a/zen/file_io.cpp b/zen/file_io.cpp
index b4affd37..0c5ff490 100755
--- a/zen/file_io.cpp
+++ b/zen/file_io.cpp
@@ -140,7 +140,7 @@ size_t FileInput::read(void* buffer, size_t bytesToRead) //throw FileError, X; r
if (notifyUnbufferedIO_) notifyUnbufferedIO_(bytesRead); //throw X
if (bytesRead == 0) //end of file
- bytesToRead = memBuf_.size();
+ bytesToRead = std::min(bytesToRead, memBuf_.size());
}
std::copy(memBuf_.begin(), memBuf_.begin() + bytesToRead, static_cast<char*>(buffer));
@@ -185,9 +185,10 @@ FileOutput::FileOutput(const Zstring& filePath, AccessFlag access, const IOCallb
FileOutput::~FileOutput()
{
+ notifyUnbufferedIO_ = nullptr; //no call-backs during destruction!!!
try
{
- flushBuffers(); //throw FileError, X
+ flushBuffers(); //throw FileError, (X)
}
catch (...) { assert(false); }
}
bgstack15