From 98fed68347ed59f5f9a55230cc6ec21311f3ef07 Mon Sep 17 00:00:00 2001 From: Martin Smith Date: Tue, 3 Apr 2012 10:17:16 +0200 Subject: 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 --- src/tools/qdoc/cppcodeparser.cpp | 4 ++-- src/tools/qdoc/tree.cpp | 12 ++++++++++++ 2 files changed, 14 insertions(+), 2 deletions(-) (limited to 'src/tools') 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(root()); return static_cast(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(root()); return static_cast(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(root()); return static_cast(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(root()); return static_cast(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(root()); return static_cast(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(root()); return static_cast(findNodeRecursive(path, 0, start, Node::Fake, Node::QmlModule)); } -- cgit v1.2.3