summaryrefslogtreecommitdiff
path: root/src/qdoc/clangcodeparser.cpp
diff options
context:
space:
mode:
authorTopi Reinio <topi.reinio@qt.io>2020-10-20 15:06:43 +0200
committerTopi Reinio <topi.reinio@qt.io>2020-10-20 17:22:59 +0200
commit1c4ca3b8d08ea15dd34a8aba0ec5052a1c471ff1 (patch)
tree5df4ca14742efb76da432768260f650cc7d268e4 /src/qdoc/clangcodeparser.cpp
parent57e18911d0af62f7cdec8833cf064ecb9d7ed92c (diff)
downloadqttools-1c4ca3b8d08ea15dd34a8aba0ec5052a1c471ff1.tar.gz
qdoc: Fix parsing of private signals
Parameters with a type QPrivateSignal were already removed when constructing a FunctionNode from header declaration. This was erraneously subtracted from the number of stored parameters when parsing an \fn command. Fixes: QTBUG-87731 Change-Id: I01409c0fcdab0dfbf8a0b9d22cded99618bdcc2d Reviewed-by: Paul Wicking <paul.wicking@qt.io>
Diffstat (limited to 'src/qdoc/clangcodeparser.cpp')
-rw-r--r--src/qdoc/clangcodeparser.cpp7
1 files changed, 3 insertions, 4 deletions
diff --git a/src/qdoc/clangcodeparser.cpp b/src/qdoc/clangcodeparser.cpp
index 749eb0bbc..bc894ccdf 100644
--- a/src/qdoc/clangcodeparser.cpp
+++ b/src/qdoc/clangcodeparser.cpp
@@ -333,15 +333,14 @@ static Node *findNodeForCursor(QDocDatabase *qdb, CXCursor cur)
continue;
auto fn = static_cast<FunctionNode *>(candidate);
const Parameters &parameters = fn->parameters();
- const int actualArg = numArg - parameters.isPrivateSignal();
- if (parameters.count() != actualArg + isVariadic)
+ if (parameters.count() != numArg + isVariadic)
continue;
if (fn->isConst() != bool(clang_CXXMethod_isConst(cur)))
continue;
if (isVariadic && parameters.last().type() != QLatin1String("..."))
continue;
bool different = false;
- for (int i = 0; i < actualArg; ++i) {
+ for (int i = 0; i < numArg; ++i) {
CXType argType = clang_getArgType(funcType, i);
if (args.size() <= i)
args.append(fromCXString(clang_getTypeSpelling(argType)));
@@ -947,7 +946,7 @@ void ClangVisitor::processFunction(FunctionNode *fn, CXCursor cursor)
}
}
if (parameters.count() > 0) {
- if (parameters.last().type().endsWith(QLatin1String("::QPrivateSignal"))) {
+ if (parameters.last().type().endsWith(QLatin1String("QPrivateSignal"))) {
parameters.pop_back(); // remove the QPrivateSignal argument
parameters.setPrivateSignal();
}