summaryrefslogtreecommitdiffstats
path: root/src/corelib/tools/qmap.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/corelib/tools/qmap.h')
-rw-r--r--src/corelib/tools/qmap.h12
1 files changed, 7 insertions, 5 deletions
diff --git a/src/corelib/tools/qmap.h b/src/corelib/tools/qmap.h
index 29e8f9b140..0e32ade94d 100644
--- a/src/corelib/tools/qmap.h
+++ b/src/corelib/tools/qmap.h
@@ -288,9 +288,11 @@ void QMapData<Key, T>::deleteNode(QMapNode<Key, T> *z)
template <class Key, class T>
QMapNode<Key, T> *QMapData<Key, T>::findNode(const Key &akey) const
{
- Node *lb = root()->lowerBound(akey);
- if (lb && !qMapLessThanKey(akey, lb->key))
- return lb;
+ if (Node *r = root()) {
+ Node *lb = r->lowerBound(akey);
+ if (lb && !qMapLessThanKey(akey, lb->key))
+ return lb;
+ }
return 0;
}
@@ -307,10 +309,10 @@ void QMapData<Key, T>::nodeRange(const Key &akey, QMapNode<Key, T> **firstNode,
} else if (qMapLessThanKey(n->key, akey)) {
n = n->rightNode();
} else {
- *firstNode = n->leftNode()->lowerBound(akey);
+ *firstNode = n->leftNode() ? n->leftNode()->lowerBound(akey) : 0;
if (!*firstNode)
*firstNode = n;
- *lastNode = n->rightNode()->upperBound(akey);
+ *lastNode = n->rightNode() ? n->rightNode()->upperBound(akey) : 0;
if (!*lastNode)
*lastNode = l;
return;