Index: src/libchcore/TFileInfoArray.cpp =================================================================== diff -u -N -r081055369d6b332ef1651877756657973b1b2d9c -rfc67a825635691930b3ac00dc95b16e59f3d2fae --- src/libchcore/TFileInfoArray.cpp (.../TFileInfoArray.cpp) (revision 081055369d6b332ef1651877756657973b1b2d9c) +++ src/libchcore/TFileInfoArray.cpp (.../TFileInfoArray.cpp) (revision fc67a825635691930b3ac00dc95b16e59f3d2fae) @@ -133,6 +133,8 @@ { boost::shared_lock lock(m_lock); + InitColumns(spContainer); + // store only if there is a complete collection of items inside // (this container is used in the directory scanning process. There is no // point storing only partially scanned data in the serializer as we @@ -149,9 +151,7 @@ void TFileInfoArray::Load(const ISerializerContainerPtr& spContainer, const TBasePathDataContainerPtr& spBasePaths) { - IColumnsDefinition& rColumns = spContainer->GetColumnsDefinition(); - if(rColumns.IsEmpty()) - TFileInfo::InitLoader(rColumns); + InitColumns(spContainer); std::vector vEntries; ISerializerRowReaderPtr spRowReader = spContainer->GetRowReader(); @@ -169,4 +169,11 @@ m_vFiles = vEntries; } +void TFileInfoArray::InitColumns(const ISerializerContainerPtr& spContainer) const +{ + IColumnsDefinition& rColumns = spContainer->GetColumnsDefinition(); + if(rColumns.IsEmpty()) + TFileInfo::InitColumns(rColumns); +} + END_CHCORE_NAMESPACE