summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMartin Smith <martin.smith@nokia.com>2012-04-03 10:17:16 +0200
committerQt by Nokia <qt-info@nokia.com>2012-04-03 12:45:46 +0200
commit98fed68347ed59f5f9a55230cc6ec21311f3ef07 (patch)
tree9c0c9273a54638d377c0d1c53a0b266cbe58ffd0
parente09fc38a3624f372c9f0b7339b460468961e918b (diff)
qdoc: findNodeRecursive() was called with a null start node
This occurred in several places. They have all been corrected to start at the tree root, when the start node passed is null. Task nr: QTBUG-25146 Change-Id: I5d75db0626451d30e8be8de5605036ba168f2a14 Reviewed-by: Casper van Donderen <casper.vandonderen@nokia.com>
-rw-r--r--src/tools/qdoc/cppcodeparser.cpp4
-rw-r--r--src/tools/qdoc/tree.cpp12
2 files changed, 14 insertions, 2 deletions
diff --git a/src/tools/qdoc/cppcodeparser.cpp b/src/tools/qdoc/cppcodeparser.cpp
index 7dfb32bde0..b08c6f901c 100644
--- a/src/tools/qdoc/cppcodeparser.cpp
+++ b/src/tools/qdoc/cppcodeparser.cpp
@@ -1067,9 +1067,9 @@ void CppCodeParser::processOtherMetaCommand(const Doc& doc,
If it wasn't a file, it should be either a class or a namespace.
*/
QStringList newPath = arg.split("::");
- n = tree_->findClassNode(QStringList(newPath));
+ n = tree_->findClassNode(newPath);
if (!n)
- n = tree_->findNamespaceNode(QStringList(newPath));
+ n = tree_->findNamespaceNode(newPath);
}
if (!n) {
diff --git a/src/tools/qdoc/tree.cpp b/src/tools/qdoc/tree.cpp
index a735f02d26..3dfcfea48b 100644
--- a/src/tools/qdoc/tree.cpp
+++ b/src/tools/qdoc/tree.cpp
@@ -2407,6 +2407,8 @@ Node* Tree::findNodeRecursive(const QStringList& path,
*/
EnumNode* Tree::findEnumNode(const QStringList& path, Node* start)
{
+ if (!start)
+ start = const_cast<NamespaceNode*>(root());
return static_cast<EnumNode*>(findNodeRecursive(path, 0, start, Node::Enum, Node::NoSubType));
}
@@ -2418,6 +2420,8 @@ EnumNode* Tree::findEnumNode(const QStringList& path, Node* start)
*/
ClassNode* Tree::findClassNode(const QStringList& path, Node* start)
{
+ if (!start)
+ start = const_cast<NamespaceNode*>(root());
return static_cast<ClassNode*>(findNodeRecursive(path, 0, start, Node::Class, Node::NoSubType));
}
@@ -2441,6 +2445,8 @@ QmlClassNode* Tree::findQmlClassNode(const QStringList& path, Node* start)
return qcn;
}
+ if (!start)
+ start = const_cast<NamespaceNode*>(root());
return static_cast<QmlClassNode*>(findNodeRecursive(path, 0, start, Node::Fake, Node::QmlClass));
}
@@ -2452,6 +2458,8 @@ QmlClassNode* Tree::findQmlClassNode(const QStringList& path, Node* start)
*/
NamespaceNode* Tree::findNamespaceNode(const QStringList& path, Node* start)
{
+ if (!start)
+ start = const_cast<NamespaceNode*>(root());
return static_cast<NamespaceNode*>(findNodeRecursive(path, 0, start, Node::Namespace, Node::NoSubType));
}
@@ -2463,6 +2471,8 @@ NamespaceNode* Tree::findNamespaceNode(const QStringList& path, Node* start)
*/
FakeNode* Tree::findGroupNode(const QStringList& path, Node* start)
{
+ if (!start)
+ start = const_cast<NamespaceNode*>(root());
return static_cast<FakeNode*>(findNodeRecursive(path, 0, start, Node::Fake, Node::Group));
}
@@ -2474,6 +2484,8 @@ FakeNode* Tree::findGroupNode(const QStringList& path, Node* start)
*/
FakeNode* Tree::findQmlModuleNode(const QStringList& path, Node* start)
{
+ if (!start)
+ start = const_cast<NamespaceNode*>(root());
return static_cast<FakeNode*>(findNodeRecursive(path, 0, start, Node::Fake, Node::QmlModule));
}