[Libreoffice-commits] .: sw/source

Lubos Lunak llunak at kemper.freedesktop.org
Wed Jul 27 08:40:11 PDT 2011


 sw/source/filter/ww8/docxattributeoutput.cxx |    7 ++++---
 1 file changed, 4 insertions(+), 3 deletions(-)

New commits:
commit 9bdcecd3e516728e488a26fbfe85a5a6aa1f1968
Author: Luboš Luňák <l.lunak at suse.cz>
Date:   Tue Jul 19 19:29:24 2011 +0200

    don't use an invalidated iterator

diff --git a/sw/source/filter/ww8/docxattributeoutput.cxx b/sw/source/filter/ww8/docxattributeoutput.cxx
index 9e066a0..0ae06f0 100644
--- a/sw/source/filter/ww8/docxattributeoutput.cxx
+++ b/sw/source/filter/ww8/docxattributeoutput.cxx
@@ -556,7 +556,7 @@ void DocxAttributeOutput::EndRun()
     }
 
     // Write the hyperlink and toc fields 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 hyperlinks, TOCs and index marks
         if ( pIt->bOpen && !pIt->pField )
@@ -565,10 +565,11 @@ void DocxAttributeOutput::EndRun()
 
             // Remove the field if no end needs to be written
             if ( !pIt->bClose ) {
-                m_Fields.erase( pIt );
-                --pIt;
+                pIt = m_Fields.erase( pIt );
+                continue;
             }
         }
+        ++pIt;
     }
 
     DoWriteBookmarks( );


More information about the Libreoffice-commits mailing list