crash fix in designersupport
authorThomas Hartmann <Thomas.Hartmann@digia.com>
Mon, 8 Oct 2012 08:34:09 +0000 (10:34 +0200)
committerThe Qt Project <gerrit-noreply@qt-project.org>
Tue, 9 Oct 2012 09:23:09 +0000 (11:23 +0200)
Unless result is an insert iterator, qCopy()
assumes that all iterators in the range
[result + (finish - start)] are dereferenceable.
This is not the case for an empty list.

Using foreach instead.

Change-Id: I2212a88e9b462ae2220ba5aeb43c662592cec57f
Reviewed-by: Marco Bubke <marco.bubke@digia.com>
src/quick/designer/designersupport.cpp

index 5584a24..c06e8f0 100644 (file)
@@ -363,7 +363,10 @@ QList<QObject*> DesignerSupport::statesForItem(QQuickItem *item)
 {
     QList<QObject*> objectList;
     QList<QQuickState *> stateList = QQuickItemPrivate::get(item)->_states()->states();
-    qCopy(stateList.begin(), stateList.end(), objectList.begin());
+
+    objectList.reserve(stateList.size());
+    foreach (QQuickState* state, stateList)
+        objectList.append(state);
 
     return objectList;
 }