diff -r 56cd8111b7f7 -r 41300fa6a67c tools/qdoc3/tree.cpp --- a/tools/qdoc3/tree.cpp Tue Jan 26 12:42:25 2010 +0200 +++ b/tools/qdoc3/tree.cpp Tue Feb 02 00:43:10 2010 +0200 @@ -225,6 +225,7 @@ { if (!relative) relative = root(); + do { const Node *node = relative; int i; @@ -244,8 +245,7 @@ NodeList baseClasses = allBaseClasses(static_cast(node)); foreach (const Node *baseClass, baseClasses) { if (i == path.size() - 1) - next = static_cast(baseClass)-> - findFunctionNode(path.at(i)); + next = static_cast(baseClass)->findFunctionNode(path.at(i)); else next = static_cast(baseClass)->findNode(path.at(i)); @@ -256,11 +256,10 @@ node = next; } - if (node && i == path.size() && node->type() == Node::Function) { + if (node && i == path.size() && node->isFunction()) { // CppCodeParser::processOtherMetaCommand ensures that reimplemented // functions are private. const FunctionNode *func = static_cast(node); - while (func->access() == Node::Private) { const FunctionNode *from = func->reimplementedFrom(); if (from != 0) { @@ -268,7 +267,8 @@ return from; else func = from; - } else + } + else break; } return func; @@ -303,7 +303,8 @@ const Node *parent = findNode(parentPath, relative, findFlags); if (parent == 0 || !parent->isInnerNode()) { return 0; - } else { + } + else { return ((InnerNode *)parent)->findFunctionNode(clone); } }