diff options
author | Jose <jose@zeroc.com> | 2016-10-11 16:16:32 +0200 |
---|---|---|
committer | Jose <jose@zeroc.com> | 2016-10-11 16:16:32 +0200 |
commit | e659399c9fce6fc56006789120e3b90a9134574f (patch) | |
tree | 9a47a3da29acf5598ed853e1be0c7651dc0ff133 /cpp/src/IcePatch2Lib/ClientUtil.cpp | |
parent | Fixed ICE-7346 - removed lmdb dependency, set cppflags instead if necessary (diff) | |
parent | Fixed typo (diff) | |
download | ice-e659399c9fce6fc56006789120e3b90a9134574f.tar.bz2 ice-e659399c9fce6fc56006789120e3b90a9134574f.tar.xz ice-e659399c9fce6fc56006789120e3b90a9134574f.zip |
Merge remote-tracking branch 'origin/3.6'
Conflicts:
README.md
android/build.gradle
android/gradle.properties
android/gradle/wrapper/gradle-wrapper.properties
config/Make.common.rules
config/PropertyNames.xml
cpp/BuildInstructionsLinux.md
cpp/BuildInstructionsOSX.md
cpp/BuildInstructionsWinRT.md
cpp/BuildInstructionsWindows.md
cpp/config/Make.rules
cpp/config/Make.rules.mak
cpp/include/IceUtil/Config.h
cpp/include/Slice/PythonUtil.h
cpp/include/Slice/RubyUtil.h
cpp/include/Slice/Util.h
cpp/src/Ice/DynamicLibrary.cpp
cpp/src/Ice/PropertyNames.cpp
cpp/src/Ice/PropertyNames.h
cpp/src/Ice/winrt/StreamEndpointI.cpp
cpp/src/IceGrid/IceGridDB.cpp
cpp/src/IceGrid/Util.cpp
cpp/src/IceUtil/FileUtil.cpp
cpp/src/IceUtil/FileUtil.h
cpp/src/Makefile
cpp/src/Slice/Util.cpp
cpp/src/slice2cs/Gen.cpp
cpp/src/slice2freeze/Main.cpp
cpp/src/slice2freezej/Main.cpp
cpp/src/slice2html/Makefile
cpp/src/slice2html/Makefile.mak
cpp/src/slice2java/Main.cpp
cpp/test/Ice/exceptions/AllTests.cpp
cpp/test/Ice/facets/AllTests.cpp
cpp/test/Ice/info/AllTests.cpp
cpp/test/Ice/location/AllTests.cpp
cpp/test/Ice/properties/run.py
cpp/test/Ice/timeout/AllTests.cpp
cpp/test/IceGrid/noRestartUpdate/AllTests.cpp
cpp/test/IceStorm/stress/run.py
cpp/test/TestSuite/10.0/Package.appxmanifest
cpp/test/TestSuite/10.0/TestSuite.vcxproj
cpp/test/TestSuite/10.0/TestSuite.vcxproj.filters
cpp/test/TestSuite/10.0/TestSuite_TemporaryKey.pfx
cpp/test/TestSuite/8.0/TestSuite.vcxproj
cpp/test/TestSuite/8.0/TestSuite_TemporaryKey.pfx
csharp/BuildInstructions.md
csharp/src/Ice/PropertyNames.cs
csharp/src/IceLocatorDiscovery/PluginI.cs
java/BuildInstructions.md
java/Makefile
java/Makefile.mak
java/src/Glacier2/src/main/java/Glacier2/Application.java
java/src/Glacier2/src/main/java/Glacier2/SessionFactoryHelper.java
java/src/Glacier2/src/main/java/Glacier2/SessionHelper.java
java/src/Ice/src/main/java/Ice/Object.java
java/src/Ice/src/main/java/Ice/ObjectImpl.java
java/src/Ice/src/main/java/IceInternal/PropertyNames.java
java/src/Ice/src/main/java/IceSSL/Plugin.java
java/src/Ice/src/main/java/IceSSL/PluginFactory.java
java/src/Ice/src/main/java/IceUtil/Cache.java
java/src/IceGridGUI/build.gradle
java/src/IceGridGUI/src/main/java/IceGridGUI/SimpleInternalFrame.java
java/src/IceGridGUI/src/main/java/IceGridGUI/Utils.java
java/test/build.gradle
java/test/ejb/README.md
js/src/Ice/PropertyNames.js
js/src/Ice/browser/TimerUtil.js
js/src/Ice/browser/WSTransceiver.js
js/test/Common/TestCases.json
js/test/Common/Worker.js
objective-c/include/objc/Ice/Config.h
objective-c/src/Ice/CommunicatorI.mm
php/BuildInstructionsLinuxOSX.md
php/BuildInstructionsWindows.md
php/config/Make.rules.mak.php
php/src/php7/IcePHP.rc
python/BuildInstructionsLinuxOSX.md
python/BuildInstructionsWindows.md
python/Makefile
python/modules/IcePy/Slice.cpp
python/test/Slice/import/run.py
ruby/BuildInstructionsLinuxOSX.md
ruby/BuildInstructionsWindows.md
ruby/config/Make.rules
ruby/src/IceRuby/Slice.cpp
scripts/TestController.py
scripts/TestUtil.py
slice/Ice/Communicator.ice
slice/Ice/Instrumentation.ice
slice/IceLocatorDiscovery/IceLocatorDiscovery.ice
Diffstat (limited to 'cpp/src/IcePatch2Lib/ClientUtil.cpp')
-rw-r--r-- | cpp/src/IcePatch2Lib/ClientUtil.cpp | 10 |
1 files changed, 8 insertions, 2 deletions
diff --git a/cpp/src/IcePatch2Lib/ClientUtil.cpp b/cpp/src/IcePatch2Lib/ClientUtil.cpp index 07c30450029..66d315f8a6b 100644 --- a/cpp/src/IcePatch2Lib/ClientUtil.cpp +++ b/cpp/src/IcePatch2Lib/ClientUtil.cpp @@ -863,8 +863,14 @@ PatcherI::updateFilesInternal(const LargeFileInfoSeq& files, const DecompressorP throw ": cannot write `" + pathBZ2 + "':\n" + IceUtilInternal::lastErrorToString(); } - pos += bytes.size(); - updated += bytes.size(); + // 'bytes' is always returned with size '_chunkSize'. When a file is smaller than '_chunkSize' + // or we are reading the last chunk of a file, 'bytes' will be larger than necessary. In this + // case we calculate the current position and updated size based on the known file size. + size_t size = (pos + bytes.size()) > static_cast<size_t>(p->size) ? + static_cast<size_t>(p->size - pos) : bytes.size(); + + pos += size; + updated += size; if(!_feedback->patchProgress(pos, p->size, updated, total)) { |