From 58e064a5dff1289bff0d304ae8798b43d67587f7 Mon Sep 17 00:00:00 2001 From: Alan Alpert Date: Thu, 22 Mar 2012 13:17:11 +1000 Subject: [PATCH] Check for null pointer dereference Standard defensive programming Change-Id: Ic2b89cacf06812441a2b8f02c6b22de431c50b4a Reviewed-by: Chris Adams --- src/quick/items/qquickcanvas.cpp | 4 ++-- src/quick/items/qquickitem.cpp | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/src/quick/items/qquickcanvas.cpp b/src/quick/items/qquickcanvas.cpp index 8e536a45dd..6c964826fe 100644 --- a/src/quick/items/qquickcanvas.cpp +++ b/src/quick/items/qquickcanvas.cpp @@ -539,7 +539,7 @@ void QQuickCanvasPrivate::setFocusInScope(QQuickItem *scope, QQuickItem *item, F q->sendEvent(oldActiveFocusItem, &event); QQuickItem *afi = oldActiveFocusItem; - while (afi != scope) { + while (afi && afi != scope) { if (QQuickItemPrivate::get(afi)->activeFocus) { QQuickItemPrivate::get(afi)->activeFocus = false; changed << afi; @@ -635,7 +635,7 @@ void QQuickCanvasPrivate::clearFocusInScope(QQuickItem *scope, QQuickItem *item, q->sendEvent(oldActiveFocusItem, &event); QQuickItem *afi = oldActiveFocusItem; - while (afi != scope) { + while (afi && afi != scope) { if (QQuickItemPrivate::get(afi)->activeFocus) { QQuickItemPrivate::get(afi)->activeFocus = false; changed << afi; diff --git a/src/quick/items/qquickitem.cpp b/src/quick/items/qquickitem.cpp index 0ebacf7ff8..9f82c7e37c 100644 --- a/src/quick/items/qquickitem.cpp +++ b/src/quick/items/qquickitem.cpp @@ -1632,7 +1632,7 @@ void QQuickItemPrivate::updateSubFocusItem(QQuickItem *scope, bool focus) // Correct focus chain in scope if (oldSubFocusItem) { QQuickItem *sfi = scopePrivate->subFocusItem->parentItem(); - while (sfi != scope) { + while (sfi && sfi != scope) { QQuickItemPrivate::get(sfi)->subFocusItem = 0; sfi = sfi->parentItem(); } @@ -1641,7 +1641,7 @@ void QQuickItemPrivate::updateSubFocusItem(QQuickItem *scope, bool focus) if (focus) { scopePrivate->subFocusItem = q; QQuickItem *sfi = scopePrivate->subFocusItem->parentItem(); - while (sfi != scope) { + while (sfi && sfi != scope) { QQuickItemPrivate::get(sfi)->subFocusItem = q; sfi = sfi->parentItem(); }