diff options
author | Gunnar Sletta <gunnar@sletta.org> | 2014-10-20 09:23:28 +0200 |
---|---|---|
committer | Gunnar Sletta <gunnar@sletta.org> | 2014-10-20 10:39:34 +0200 |
commit | e0321c352e288a8dd6c5dad17d7917c9534ad156 (patch) | |
tree | b1e6fec9be97548f1d6df7d75d4e9e6bbfe532c8 /src/quick/items/qquickwindow.cpp | |
parent | b876458c60a92066a43e12c93e4ab0ec68b54c71 (diff) |
Fix newly added qquickitem_before_paintNode() implementation.
Bug spotted after the fact with lancelot.
Change-Id: Id9b2d2577658f772f3083b1396f61710a950f83b
Reviewed-by: aavit <eirik.aavitsland@digia.com>
Diffstat (limited to 'src/quick/items/qquickwindow.cpp')
-rw-r--r-- | src/quick/items/qquickwindow.cpp | 10 |
1 files changed, 6 insertions, 4 deletions
diff --git a/src/quick/items/qquickwindow.cpp b/src/quick/items/qquickwindow.cpp index 1fc0584a34..34b1c474ed 100644 --- a/src/quick/items/qquickwindow.cpp +++ b/src/quick/items/qquickwindow.cpp @@ -2650,12 +2650,14 @@ static inline QSGNode *qquickitem_before_paintNode(QQuickItemPrivate *d) if (!d->extra.isAllocated()) return 0; const QList<QQuickItem *> childItems = d->paintOrderChildItems(); + QQuickItem *before = 0; for (int i=0; i<childItems.size(); ++i) { - if (Q_LIKELY(QQuickItemPrivate::get(childItems.at(i))->z() >= 0)) { - return Q_LIKELY(i == 0) ? 0 : QQuickItemPrivate::get(childItems.at(i))->itemNode(); - } + if (Q_UNLIKELY(QQuickItemPrivate::get(childItems.at(i))->z() < 0)) + before = childItems.at(i); + else + break; } - return 0; + return Q_UNLIKELY(before) ? QQuickItemPrivate::get(before)->itemNode() : 0; } void QQuickWindowPrivate::updateDirtyNode(QQuickItem *item) |