From kde-commits Tue Aug 02 09:16:39 2011 From: "Dr. Robert Marmorstein" Date: Tue, 02 Aug 2011 09:16:39 +0000 To: kde-commits Subject: [koffice] plugins/textshape: Make erasing iterator-safe in Message-Id: <20110802091639.92849A60DA () git ! kde ! org> X-MARC-Message: https://marc.info/?l=kde-commits&m=131227666815687 Git commit 4e39c7e25c2a09e73f2d32db3c3fd416c9230cf0 by Dr. Robert Marmorstein. Committed on 01/08/2011 at 20:45. Pushed by robertm into branch 'master'. Make erasing iterator-safe in textshape layout. This may or may not be causing problems now, but it doesn't hurt to do it right. M +6 -5 plugins/textshape/Layout.cpp http://commits.kde.org/koffice/4e39c7e25c2a09e73f2d32db3c3fd416c9230cf0 diff --git a/plugins/textshape/Layout.cpp b/plugins/textshape/Layout.cpp index b82a649..4a0ca50 100644 --- a/plugins/textshape/Layout.cpp +++ b/plugins/textshape/Layout.cpp @@ -525,12 +525,13 @@ bool Layout::nextParag() // first remove any drop-caps related formatting that's already there in the layout. // we'll do it all afresh now. QList formatRanges = layout->additionalFormats(); - for (QList< QTextLayout::FormatRange >::Iterator iter = formatRanges.begin(); - iter != formatRanges.end(); - ++iter) { - if (iter->format.boolProperty(DropCapsAdditionalFormattingId)) { - formatRanges.erase(iter); + QList< QTextLayout::FormatRange >::Iterator iter = formatRanges.begin(); + while (iter != formatRanges.end()) { + if (iter->format.boolProperty(DropCapsAdditionalFormattingId)){ + iter = formatRanges.erase(iter); } + else + ++iter; } if (formatRanges.count() != layout->additionalFormats().count()) layout->setAdditionalFormats(formatRanges);