summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorTopi Reinio <topi.reinio@digia.com>2015-09-04 11:55:04 +0200
committerTopi Reiniƶ <topi.reinio@digia.com>2015-09-07 11:11:51 +0000
commit8a79e4d6784766d03aca50ebdfdf1c9175298326 (patch)
tree69acbabcf787f468f356a933983db710907622dc /src
parent9c6a49078ae0da65f605384ba16e2a46e19ff5a1 (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>
Diffstat (limited to 'src')
-rw-r--r--src/tools/qdoc/tree.cpp11
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);