diff options
author | Gunnar Sletta <gunnar.sletta@nokia.com> | 2012-02-06 17:57:43 +0100 |
---|---|---|
committer | Qt by Nokia <qt-info@nokia.com> | 2012-02-07 11:45:14 +0100 |
commit | 5a5393fd53eea23b0de5a69ad9d706a2ee2502cc (patch) | |
tree | dcd133318138403f01942cec33a459d9620ba5e3 /src | |
parent | 96860e3c9e425730aeb241ad7e1a5392164aea55 (diff) |
Avoid recursive parent chains in QQuickItem
Change-Id: I47b666cfacd804c4302236f0a4b371ca7b382c3d
Reviewed-by: Michael Brasser <michael.brasser@nokia.com>
Diffstat (limited to 'src')
-rw-r--r-- | src/quick/items/qquickitem.cpp | 11 |
1 files changed, 11 insertions, 0 deletions
diff --git a/src/quick/items/qquickitem.cpp b/src/quick/items/qquickitem.cpp index 30a23db4de..166ffe82b2 100644 --- a/src/quick/items/qquickitem.cpp +++ b/src/quick/items/qquickitem.cpp @@ -1869,6 +1869,17 @@ void QQuickItem::setParentItem(QQuickItem *parentItem) if (parentItem == d->parentItem) return; + if (parentItem) { + QQuickItem *itemAncestor = parentItem->parentItem(); + while (itemAncestor != 0) { + if (itemAncestor == this) { + qWarning("QQuickItem::setParentItem: Parent is already part of this items subtree."); + return; + } + itemAncestor = itemAncestor->parentItem(); + } + } + d->removeFromDirtyList(); QQuickItem *oldParentItem = d->parentItem; |