diff options
author | Topi Reinio <topi.reinio@digia.com> | 2015-09-04 11:55:04 +0200 |
---|---|---|
committer | Topi Reiniƶ <topi.reinio@digia.com> | 2015-09-07 11:11:51 +0000 |
commit | 8a79e4d6784766d03aca50ebdfdf1c9175298326 (patch) | |
tree | 69acbabcf787f468f356a933983db710907622dc | |
parent | 9c6a49078ae0da65f605384ba16e2a46e19ff5a1 (diff) |
qdoc: Fix issue with findNodeForTarget()
QDoc was searching for nodes using empty target string in some
cases (when the string contained no '::' but genus was set to
either QML or CPP).
This resulted in random nodes being returned from
findUnambiguousTarget(), causing mislinking without any
warnings.
Change-Id: I1bd434ec7470580cf5cb8083c2b74c37ef562473
Reviewed-by: Martin Smith <martin.smith@digia.com>
-rw-r--r-- | src/tools/qdoc/tree.cpp | 11 |
1 files changed, 4 insertions, 7 deletions
diff --git a/src/tools/qdoc/tree.cpp b/src/tools/qdoc/tree.cpp index d64903e61e..f8f88e6b91 100644 --- a/src/tools/qdoc/tree.cpp +++ b/src/tools/qdoc/tree.cpp @@ -721,12 +721,8 @@ const Node* Tree::findNodeForTarget(const QStringList& path, QString& ref) const { const Node* node = 0; - QString p; - if (path.size() > 1) - p = path.join(QString("::")); - else if ((genus == Node::DontCare) || (genus == Node::DOC)) { - p = path.at(0); - node = findDocumentNodeByTitle(p); + if ((genus == Node::DontCare) || (genus == Node::DOC)) { + node = findDocumentNodeByTitle(path.at(0)); if (node) { if (!target.isEmpty()) { ref = getRef(target, node); @@ -737,7 +733,8 @@ const Node* Tree::findNodeForTarget(const QStringList& path, return node; } } - node = findUnambiguousTarget(p, ref); + + node = findUnambiguousTarget(path.join(QStringLiteral("::")), ref); if (node) { if (!target.isEmpty()) { ref = getRef(target, node); |