From: Martin Smith Date: Thu, 26 Jul 2012 12:16:58 +0000 (+0200) Subject: qdoc: Added safety checks to findUnambiguousTarget() X-Git-Tag: v5.0.0-beta1~541 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=d294ac8d68ccc0e7b0880ef75dbe76846a7f200d;p=profile%2Fivi%2Fqtbase.git qdoc: Added safety checks to findUnambiguousTarget() This is a blind attempt to fix QTBUG-26615. I can't reproduce the crash on OSX. Task nr: QTBUG-26615 Change-Id: Ifc6b68b7f302b9cd7d02129be8ae56841a35e5de Reviewed-by: Martin Smith --- diff --git a/src/tools/qdoc/tree.cpp b/src/tools/qdoc/tree.cpp index 3123055..4d0e126 100644 --- a/src/tools/qdoc/tree.cpp +++ b/src/tools/qdoc/tree.cpp @@ -497,6 +497,9 @@ Tree::findUnambiguousTarget(const QString& target, Atom *&atom, const Node* rela int numBestTargets = 0; QList bestTargetList; + if (priv == 0) + return 0; + for (int pass = 0; pass < NumSuffixes; ++pass) { TargetHash::const_iterator i = priv->targetHash.constFind(Doc::canonicalTitle(target + suffixes[pass])); if (i != priv->targetHash.constEnd()) { @@ -523,7 +526,7 @@ Tree::findUnambiguousTarget(const QString& target, Atom *&atom, const Node* rela if (relative && !relative->qmlModuleIdentifier().isEmpty()) { for (int i=0; iqmlModuleIdentifier() == n->qmlModuleIdentifier()) { + if (n && relative->qmlModuleIdentifier() == n->qmlModuleIdentifier()) { atom = bestTargetList.at(i).atom; return n; }