don't use an invalidated iterator

This commit is contained in:
Luboš Luňák
2012-01-09 15:51:10 +01:00
parent 7ec8f13d3a
commit 2df1c40b4b

View File

@@ -518,7 +518,7 @@ void DocxAttributeOutput::StartRun( const SwRedlineData* pRedlineData )
void DocxAttributeOutput::EndRun()
{
// Write field starts
for ( std::vector<FieldInfos>::iterator pIt = m_Fields.begin(); pIt != m_Fields.end(); ++pIt )
for ( std::vector<FieldInfos>::iterator pIt = m_Fields.begin(); pIt != m_Fields.end(); )
{
// Add the fields starts for all but hyperlinks and TOCs
if ( pIt->bOpen && pIt->pField )
@@ -529,10 +529,11 @@ void DocxAttributeOutput::EndRun()
// Unknown fields sould be removed too
if ( !pIt->bClose || ( pIt->eType == ww::eUNKNOWN ) )
{
m_Fields.erase( pIt );
--pIt;
pIt = m_Fields.erase( pIt );
continue;
}
}
++pIt;
}
// write the run properties + the text, already in the correct order