Check for null pointer dereference
authorAlan Alpert <alan.alpert@nokia.com>
Thu, 22 Mar 2012 03:17:11 +0000 (13:17 +1000)
committerQt by Nokia <qt-info@nokia.com>
Thu, 22 Mar 2012 05:28:39 +0000 (06:28 +0100)
Standard defensive programming

Change-Id: Ic2b89cacf06812441a2b8f02c6b22de431c50b4a
Reviewed-by: Chris Adams <christopher.adams@nokia.com>
src/quick/items/qquickcanvas.cpp
src/quick/items/qquickitem.cpp

index 8e536a4..6c96482 100644 (file)
@@ -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;
index 0ebacf7..9f82c7e 100644 (file)
@@ -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();
         }