Index: src/ch/Structs.cpp =================================================================== diff -u -N -r2758c0f90afc4dd061b45b520dd4e947aedc5052 -ra221bc85d5b545c580d3674a22bd5b0412756b41 --- src/ch/Structs.cpp (.../Structs.cpp) (revision 2758c0f90afc4dd061b45b520dd4e947aedc5052) +++ src/ch/Structs.cpp (.../Structs.cpp) (revision a221bc85d5b545c580d3674a22bd5b0412756b41) @@ -259,10 +259,10 @@ return info; } -CFileInfo CTask::FilesGetAtCurrentIndex() +CFileInfo& CTask::FilesGetAtCurrentIndex() { m_cs.Lock(); - CFileInfo info=m_files.GetAt(m_nCurrentIndex); + CFileInfo& info=m_files.GetAt(m_nCurrentIndex); m_cs.Unlock(); return info; } @@ -568,7 +568,7 @@ { m_clipboard.Serialize(ar, bData); - m_files.Load(ar); + m_files.Load(ar, false); m_dpDestPath.Serialize(ar); ar>>m_strUniqueName; m_afFilters.Serialize(ar); @@ -603,6 +603,7 @@ ar>>m_ucCurrentCopy; m_clipboard.Serialize(ar, bData); + m_files.Load(ar, true); unsigned char ucTmp; ar>>ucTmp; @@ -644,7 +645,7 @@ m_clipboard.Serialize(ar, bData); if (GetStatus(ST_STEP_MASK) > ST_SEARCHING) - m_files.Store(ar); + m_files.Store(ar, false); else ar<(0); @@ -668,6 +669,10 @@ ar<(m_nProcessed & 0x00000000ffffffff); ar< ST_SEARCHING) + m_files.Store(ar, true); + else + ar<(0); ar<<(unsigned char)m_bSaved; } Index: src/ch/Structs.h =================================================================== diff -u -N -r66e9ad9a512cec46d691cb1ba012424dc7ac8897 -ra221bc85d5b545c580d3674a22bd5b0412756b41 --- src/ch/Structs.h (.../Structs.h) (revision 66e9ad9a512cec46d691cb1ba012424dc7ac8897) +++ src/ch/Structs.h (.../Structs.h) (revision a221bc85d5b545c580d3674a22bd5b0412756b41) @@ -152,7 +152,7 @@ const bool bRecurse, const bool bIncludeDirs); int FilesAdd(CFileInfo fi); CFileInfo FilesGetAt(int nIndex); - CFileInfo FilesGetAtCurrentIndex(); + CFileInfo& FilesGetAtCurrentIndex(); void FilesRemoveAll(); int FilesGetSize();