diff options
| -rw-r--r-- | src/libs/cplusplus/FindUsages.cpp | 9 | ||||
| -rw-r--r-- | src/libs/cplusplus/FindUsages.h | 1 |
2 files changed, 10 insertions, 0 deletions
diff --git a/src/libs/cplusplus/FindUsages.cpp b/src/libs/cplusplus/FindUsages.cpp index 5b3e77ee8d..d6ecca8cbf 100644 --- a/src/libs/cplusplus/FindUsages.cpp +++ b/src/libs/cplusplus/FindUsages.cpp @@ -59,6 +59,7 @@ void FindUsages::setGlobalNamespaceBinding(NamespaceBindingPtr globalNamespaceBi QList<int> FindUsages::operator()(Symbol *symbol, Identifier *id, AST *ast) { + _processed.clear(); _references.clear(); _declSymbol = symbol; _id = id; @@ -92,6 +93,9 @@ QString FindUsages::matchingLine(const Token &tk) const void FindUsages::reportResult(unsigned tokenIndex, const QList<Symbol *> &candidates) { + if (_processed.contains(tokenIndex)) + return; + const bool isStrongResult = checkCandidates(candidates); if (isStrongResult) @@ -100,6 +104,11 @@ void FindUsages::reportResult(unsigned tokenIndex, const QList<Symbol *> &candid void FindUsages::reportResult(unsigned tokenIndex) { + if (_processed.contains(tokenIndex)) + return; + + _processed.insert(tokenIndex); + const Token &tk = tokenAt(tokenIndex); const QString lineText = matchingLine(tk); diff --git a/src/libs/cplusplus/FindUsages.h b/src/libs/cplusplus/FindUsages.h index 9f82949380..667ad18485 100644 --- a/src/libs/cplusplus/FindUsages.h +++ b/src/libs/cplusplus/FindUsages.h @@ -114,6 +114,7 @@ private: QList<int> _references; LookupContext _previousContext; int _inSimpleDeclaration; + QSet<unsigned> _processed; }; } // end of namespace CPlusPlus |
