Index: src/libchcore/TConfig.cpp =================================================================== diff -u -N -r1e550337d5944f7d73ca425fc5e266ee0dbaa6f2 -re92d7e2b63df1305b23aa04132c45ad8747dc22c --- src/libchcore/TConfig.cpp (.../TConfig.cpp) (revision 1e550337d5944f7d73ca425fc5e266ee0dbaa6f2) +++ src/libchcore/TConfig.cpp (.../TConfig.cpp) (revision e92d7e2b63df1305b23aa04132c45ad8747dc22c) @@ -146,6 +146,7 @@ InitColumns(spContainer); spContainer->DeleteRows(m_pImpl->m_setRemovedObjects); + m_pImpl->m_setRemovedObjects.Clear(); BOOST_FOREACH(const ConfigNode& rNode, m_pImpl->m_mic) { Index: src/libchcore/TFileFiltersArray.cpp =================================================================== diff -u -N -ra44714d5c7ec0f50a376f4d0ea919ee5a224f834 -re92d7e2b63df1305b23aa04132c45ad8747dc22c --- src/libchcore/TFileFiltersArray.cpp (.../TFileFiltersArray.cpp) (revision a44714d5c7ec0f50a376f4d0ea919ee5a224f834) +++ src/libchcore/TFileFiltersArray.cpp (.../TFileFiltersArray.cpp) (revision e92d7e2b63df1305b23aa04132c45ad8747dc22c) @@ -155,6 +155,7 @@ InitColumns(spContainer); spContainer->DeleteRows(m_setRemovedObjects); + m_setRemovedObjects.Clear(); BOOST_FOREACH(const TFileFilter& rFilter, m_vFilters) { Index: src/libchcore/TFileFiltersArray.h =================================================================== diff -u -N -rfc67a825635691930b3ac00dc95b16e59f3d2fae -re92d7e2b63df1305b23aa04132c45ad8747dc22c --- src/libchcore/TFileFiltersArray.h (.../TFileFiltersArray.h) (revision fc67a825635691930b3ac00dc95b16e59f3d2fae) +++ src/libchcore/TFileFiltersArray.h (.../TFileFiltersArray.h) (revision e92d7e2b63df1305b23aa04132c45ad8747dc22c) @@ -62,7 +62,7 @@ #pragma warning(disable: 4251) std::vector m_vFilters; #pragma warning(pop) - TRemovedObjects m_setRemovedObjects; + mutable TRemovedObjects m_setRemovedObjects; }; END_CHCORE_NAMESPACE Index: src/libchcore/TFileInfoArray.cpp =================================================================== diff -u -N -r121d674474766192b5bf02afda67fb962635f56b -re92d7e2b63df1305b23aa04132c45ad8747dc22c --- src/libchcore/TFileInfoArray.cpp (.../TFileInfoArray.cpp) (revision 121d674474766192b5bf02afda67fb962635f56b) +++ src/libchcore/TFileInfoArray.cpp (.../TFileInfoArray.cpp) (revision e92d7e2b63df1305b23aa04132c45ad8747dc22c) @@ -79,12 +79,12 @@ void TFileInfoArray::Clear() { boost::unique_lock lock(m_lock); - m_vFiles.clear(); m_bComplete = false; BOOST_FOREACH(const TFileInfoPtr& spFileInfo, m_vFiles) { m_setRemovedObjects.Add(spFileInfo->GetObjectID()); } + m_vFiles.clear(); } unsigned long long TFileInfoArray::CalculateTotalSize() const @@ -141,6 +141,9 @@ // to scan again)). if(m_bComplete) { + spContainer->DeleteRows(m_setRemovedObjects); + m_setRemovedObjects.Clear(); + BOOST_FOREACH(const TFileInfoPtr& spFileInfo, m_vFiles) { spFileInfo->Store(spContainer); Index: src/libchcore/TFileInfoArray.h =================================================================== diff -u -N -ra44714d5c7ec0f50a376f4d0ea919ee5a224f834 -re92d7e2b63df1305b23aa04132c45ad8747dc22c --- src/libchcore/TFileInfoArray.h (.../TFileInfoArray.h) (revision a44714d5c7ec0f50a376f4d0ea919ee5a224f834) +++ src/libchcore/TFileInfoArray.h (.../TFileInfoArray.h) (revision e92d7e2b63df1305b23aa04132c45ad8747dc22c) @@ -73,7 +73,7 @@ #pragma warning(push) #pragma warning(disable: 4251) - TRemovedObjects m_setRemovedObjects; + mutable TRemovedObjects m_setRemovedObjects; std::vector m_vFiles; mutable boost::shared_mutex m_lock; #pragma warning(pop) Index: src/libchcore/TTaskLocalStats.cpp =================================================================== diff -u -N -r7d59ab9183c933f2fc2682a95fb5d26cf2f952d7 -re92d7e2b63df1305b23aa04132c45ad8747dc22c --- src/libchcore/TTaskLocalStats.cpp (.../TTaskLocalStats.cpp) (revision 7d59ab9183c933f2fc2682a95fb5d26cf2f952d7) +++ src/libchcore/TTaskLocalStats.cpp (.../TTaskLocalStats.cpp) (revision e92d7e2b63df1305b23aa04132c45ad8747dc22c) @@ -113,7 +113,6 @@ m_setModifications.reset(); } } - } void TTaskLocalStatsInfo::Load(const ISerializerContainerPtr& spContainer)