diff --git a/src/quick/items/qquickcanvas.cpp b/src/quick/items/qquickcanvas.cpp index 4a166c17bb6227bb95a21018f5c916f5774d5174..52344d645627d730f6ddba04e2e70410ed3d999e 100644 --- a/src/quick/items/qquickcanvas.cpp +++ b/src/quick/items/qquickcanvas.cpp @@ -197,10 +197,11 @@ void QQuickCanvas::focusInEvent(QFocusEvent *) void QQuickCanvasPrivate::polishItems() { - while (!itemsToPolish.isEmpty()) { - QSet<QQuickItem *>::Iterator iter = itemsToPolish.begin(); - QQuickItem *item = *iter; - itemsToPolish.erase(iter); + QSet<QQuickItem *> itms = itemsToPolish; + itemsToPolish.clear(); + + for (QSet<QQuickItem *>::iterator it = itms.begin(); it != itms.end(); ++it) { + QQuickItem *item = *it; QQuickItemPrivate::get(item)->polishScheduled = false; item->updatePolish(); }