Index: src/ch/FileInfo.cpp =================================================================== diff -u -N -r012e8c96dde85616cf4ecbd594afa91517d81a0d -r45cf96558ba334192ef42687d4dac01c46d6ffd8 --- src/ch/FileInfo.cpp (.../FileInfo.cpp) (revision 012e8c96dde85616cf4ecbd594afa91517d81a0d) +++ src/ch/FileInfo.cpp (.../FileInfo.cpp) (revision 45cf96558ba334192ef42687d4dac01c46d6ffd8) @@ -507,14 +507,13 @@ CString CFileInfo::GetFullFilePath() const { - BOOST_ASSERT(m_pClipboard); - if(!m_pClipboard) - THROW(_T("Invalid pointer"), 0, 0, 0); - CString strPath; if(m_stSrcIndex != std::numeric_limits::max()) { - ASSERT(m_pClipboard); + BOOST_ASSERT(m_pClipboard); + if(!m_pClipboard) + THROW(_T("Invalid pointer"), 0, 0, 0); + strPath += m_pClipboard->GetAt(m_stSrcIndex)->GetPath(); } strPath += m_strFilePath; @@ -595,6 +594,21 @@ return ullSize; } +int CFileInfoArray::GetBufferIndexAt(size_t stIndex, const CDestPath& rDestPath) +{ + boost::shared_lock lock(m_lock); + if(stIndex >= m_vFiles.size()) + return 0; + else + { + CFileInfoPtr& spFileInfo = m_vFiles[stIndex]; + if(!spFileInfo) + THROW(_T("Invalid pointer"), 0, 0, 0); + + return spFileInfo->GetBufferIndex(rDestPath); + } +} + unsigned long long CFileInfoArray::CalculatePartialSize(size_t stCount) { unsigned long long ullSize = 0;