Tokenizer: Optimised loop

This commit is contained in:
Daniel Marjamäki 2013-10-06 07:46:35 +02:00
parent 33e69df6ae
commit 9cfc1030cd
1 changed files with 11 additions and 9 deletions

View File

@ -5114,15 +5114,17 @@ void Tokenizer::simplifyVarDecl(Token * tokBegin, Token * tokEnd, bool only_k_r_
} else } else
continue; continue;
} else if (tok->str() == "(") { } else if (tok->str() == "(") {
for (Token * tok2 = tok; tok2 != tok->link(); tok2 = tok2->next()) { if (isCPP()) {
if (isCPP() && Token::Match(tok2, "[(,] [")) { for (Token * tok2 = tok; tok2 != tok->link(); tok2 = tok2->next()) {
// lambda function at tok2->next() if (Token::Match(tok2, "[(,] [")) {
// find start of lambda body // lambda function at tok2->next()
Token * lambdaBody = tok2; // find start of lambda body
while (lambdaBody && lambdaBody != tok2->link() && lambdaBody->str() != "{") Token * lambdaBody = tok2;
lambdaBody = lambdaBody->next(); while (lambdaBody && lambdaBody != tok2->link() && lambdaBody->str() != "{")
if (lambdaBody && lambdaBody != tok2->link() && lambdaBody->link()) lambdaBody = lambdaBody->next();
simplifyVarDecl(lambdaBody, lambdaBody->link()->next(), only_k_r_fpar); if (lambdaBody && lambdaBody != tok2->link() && lambdaBody->link())
simplifyVarDecl(lambdaBody, lambdaBody->link()->next(), only_k_r_fpar);
}
} }
} }
tok = tok->link(); tok = tok->link();