Index: src/libchengine/TFileInfoArray.cpp =================================================================== diff -u -rf8b6de9c28b2957db0b4e71efa11df8632e41261 -rc88853d744d42c9d0d18d14f920190d535bb714a --- src/libchengine/TFileInfoArray.cpp (.../TFileInfoArray.cpp) (revision f8b6de9c28b2957db0b4e71efa11df8632e41261) +++ src/libchengine/TFileInfoArray.cpp (.../TFileInfoArray.cpp) (revision c88853d744d42c9d0d18d14f920190d535bb714a) @@ -51,6 +51,18 @@ m_vFiles.push_back(spFileInfo); } + void TFileInfoArray::RemoveLast() + { + boost::unique_lock lock(m_lock); + if(!m_vFiles.empty()) + { + TFileInfoPtr spFileInfo = m_vFiles.back(); + m_vFiles.pop_back(); + if(!spFileInfo->IsAdded()) + m_setRemovedObjects.Add(spFileInfo->GetObjectID()); + } + } + file_count_t TFileInfoArray::GetCount() const { boost::shared_lock lock(m_lock); @@ -73,7 +85,8 @@ m_bComplete = false; for(const TFileInfoPtr& spFileInfo : m_vFiles) { - m_setRemovedObjects.Add(spFileInfo->GetObjectID()); + if(!spFileInfo->IsAdded()) + m_setRemovedObjects.Add(spFileInfo->GetObjectID()); } m_vFiles.clear(); }