template <class T> void CItemContainer<T>::Serialize( CAr & ar ) // 0-673 // 466-631
{
DWORD adwObjIndex[128];
unsigned char chSize = 0;
if( ar.IsStoring() )
{
ar.Write( m_apIndex, sizeof(DWORD) * m_dwItemMax );
u_long uOffset = ar.GetOffset();
ar << chSize;
for( u_char ch = 0; ch < m_dwItemMax; ch++ ) // 0-504
{
if( m_apItem[ch].IsEmpty() == FALSE )
{
ar << ch;
m_apItem[ch].Serialize( ar );
chSize++;
}
adwObjIndex[ch] = m_apItem[ch].m_dwObjIndex;
}
ar.Write( adwObjIndex, sizeof(DWORD) * m_dwItemMax );
int nBufSize;
LPBYTE lpBuf = ar.GetBuffer( &nBufSize );
*( lpBuf + uOffset ) = chSize;
}
else
{
ar.Read( m_apIndex, sizeof(DWORD) * m_dwItemMax );
// Clear
for( u_long i = 0; i < m_dwItemMax; i++ )
m_apItem.Empty();
ar >> chSize;
unsigned char ch;
for( int i = 0; i < chSize; i++ )<<<This seems to be the error.
{
ar >> ch;
m_apItem[ch].Serialize( ar );
}
ar.Read( adwObjIndex, sizeof(DWORD) * m_dwItemMax );
for( DWORD i = 0; i < m_dwItemMax; i++ )<<<This seems to be the error.
{
m_apItem.m_dwObjIndex = adwObjIndex;
}
}
}