From 88edf507209c648028e029a664e4657bd9922505 Mon Sep 17 00:00:00 2001 From: chrchr Date: Thu, 27 Apr 2023 16:02:18 +0200 Subject: [PATCH 1/2] Optimize createSymbolDatabaseExprIds() --- lib/symboldatabase.cpp | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/lib/symboldatabase.cpp b/lib/symboldatabase.cpp index 362c9cdaa2b..86226e67da8 100644 --- a/lib/symboldatabase.cpp +++ b/lib/symboldatabase.cpp @@ -1626,10 +1626,10 @@ void SymbolDatabase::createSymbolDatabaseExprIds() // Apply CSE for (const auto& p:exprs) { const std::vector& tokens = p.second; - for (Token* tok1:tokens) { - for (Token* tok2:tokens) { - if (tok1 == tok2) - continue; + const std::size_t N = tokens.size(); + for (std::size_t i = 0; i < N; ++i) { + for (std::size_t j = i + 1; j < N; ++j) { + Token* const tok1 = tokens[i], * const tok2 = tokens[j]; if (tok1->exprId() == tok2->exprId()) continue; if (!isSameExpression(isCPP(), true, tok1, tok2, mSettings.library, false, false)) From 6fe51afa822dbe82ae18b41b76b8f94e774462fe Mon Sep 17 00:00:00 2001 From: chrchr Date: Thu, 27 Apr 2023 17:24:10 +0200 Subject: [PATCH 2/2] Clarify code --- lib/symboldatabase.cpp | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/lib/symboldatabase.cpp b/lib/symboldatabase.cpp index 86226e67da8..c3683e2cad9 100644 --- a/lib/symboldatabase.cpp +++ b/lib/symboldatabase.cpp @@ -1628,8 +1628,9 @@ void SymbolDatabase::createSymbolDatabaseExprIds() const std::vector& tokens = p.second; const std::size_t N = tokens.size(); for (std::size_t i = 0; i < N; ++i) { + Token* const tok1 = tokens[i]; for (std::size_t j = i + 1; j < N; ++j) { - Token* const tok1 = tokens[i], * const tok2 = tokens[j]; + Token* const tok2 = tokens[j]; if (tok1->exprId() == tok2->exprId()) continue; if (!isSameExpression(isCPP(), true, tok1, tok2, mSettings.library, false, false))