Eliminate repeated lookup

This commit is contained in:
Dmitry-Me 2015-03-18 11:52:09 +03:00
parent e5e7c5dc8b
commit 8f8ba65a29
1 changed files with 3 additions and 2 deletions

View File

@ -2409,11 +2409,12 @@ static void setVarIdStructMembers(Token **tok1,
break; break;
std::map<std::string, unsigned int>& members = (*structMembers)[struct_varid]; std::map<std::string, unsigned int>& members = (*structMembers)[struct_varid];
if (members.empty() || members.find(tok->str()) == members.end()) { const std::map<std::string, unsigned int>::iterator it = members.find(tok->str());
if (it == members.end()) {
members[tok->str()] = ++(*_varId); members[tok->str()] = ++(*_varId);
tok->varId(*_varId); tok->varId(*_varId);
} else { } else {
tok->varId(members[tok->str()]); tok->varId(it->second);
} }
} }
// tok can't be null // tok can't be null