From 8aa96ee55ad542e8d5ea6b0d9389acd3b69f49d9 Mon Sep 17 00:00:00 2001 From: chrchr-github Date: Sat, 15 Jun 2024 23:16:33 +0200 Subject: [PATCH] Remove unnecessary stack --- lib/symboldatabase.cpp | 18 +++++++----------- 1 file changed, 7 insertions(+), 11 deletions(-) diff --git a/lib/symboldatabase.cpp b/lib/symboldatabase.cpp index 362ae32b2d89..c84fb70c2ee8 100644 --- a/lib/symboldatabase.cpp +++ b/lib/symboldatabase.cpp @@ -1564,29 +1564,25 @@ namespace { } }; using ExprIdMap = std::map; - void setParentExprId(Token* tokStart, ExprIdMap& exprIdMap, nonneg int &id) { - std::stack tokens; - tokens.push(tokStart); - while (!tokens.empty()) { - Token* tok = tokens.top(); - tokens.pop(); + void setParentExprId(Token* tok, ExprIdMap& exprIdMap, nonneg int &id) { + for (;;) { if (!tok->astParent() || tok->astParent()->isControlFlowKeyword()) - continue; + break; const Token* op1 = tok->astParent()->astOperand1(); if (op1 && op1->exprId() == 0 && !Token::Match(op1, "[{[]")) - continue; + break; const Token* op2 = tok->astParent()->astOperand2(); if (op2 && op2->exprId() == 0 && !((tok->astParent()->astParent() && tok->astParent()->isAssignmentOp() && tok->astParent()->astParent()->isAssignmentOp()) || isLambdaCaptureList(op2) || (op2->str() == "(" && isLambdaCaptureList(op2->astOperand1())) || Token::simpleMatch(op2, "{ }"))) - continue; + break; if (tok->astParent()->isExpandedMacro() || Token::Match(tok->astParent(), "++|--")) { tok->astParent()->exprId(id); ++id; - tokens.push(tok->astParent()); + tok = tok->astParent(); continue; } @@ -1647,7 +1643,7 @@ namespace { else { tok->astParent()->exprId(it->second); } - tokens.push(tok->astParent()); + tok = tok->astParent(); } } }