On Sat, Sep 15, 2012 at 9:13 PM, Markus Mohrhard <markus.mohrh...@googlemail.com> wrote: > Hey, > > >> >> Here are the lines: >> 178 void SwBlink::FrmDelete( const SwRootFrm* pRoot ) >> 179 { >> 180 for( SwBlinkList::iterator it = aList.begin(); it != >> aList.end(); ) >> 181 { >> 182 if( pRoot == (*it).GetRootFrm() ) >> 183 aList.erase( it ); >> 184 else >> 185 ++it; >> 186 } >> 187 } >> >> I must recognize, I don't understand how can it work above all if we go in >> the "if" since there's no increment. >> >> Any idea? > > It can't. Line 183 is supposed to be: > > aList.erase(it++); >
No, it should be it = aList.erase(it); Once you have called erase(), the iterator becomes invalid, so it must be replaced by the iterator returned by erase(), which returns the next valid position, _______________________________________________ LibreOffice mailing list LibreOffice@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/libreoffice