Skip to content

Commit 2b58e75

Browse files
committed
fixed #14089 - ProgramMemory: restored usage of hash lookups
1 parent 3529cd6 commit 2b58e75

1 file changed

Lines changed: 7 additions & 7 deletions

File tree

lib/programmemory.cpp

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -48,7 +48,7 @@
4848
ExprIdToken::ExprIdToken(const Token* tok) : tok(tok), exprid(tok ? tok->exprId() : 0) {}
4949

5050
nonneg int ExprIdToken::getExpressionId() const {
51-
return tok ? tok->exprId() : exprid;
51+
return exprid;
5252
}
5353

5454
std::size_t ExprIdToken::Hash::operator()(ExprIdToken etok) const
@@ -239,16 +239,16 @@ void ProgramMemory::copyOnWrite()
239239
ProgramMemory::Map::const_iterator ProgramMemory::find(nonneg int exprid) const
240240
{
241241
const auto& cvalues = utils::as_const(*mValues);
242-
return std::find_if(cvalues.cbegin(), cvalues.cend(), [&exprid](const Map::value_type& entry) {
243-
return entry.first.getExpressionId() == exprid;
244-
});
242+
ExprIdToken exprIdToken(nullptr);
243+
exprIdToken.exprid = exprid;
244+
return cvalues.find(exprIdToken);
245245
}
246246

247247
ProgramMemory::Map::iterator ProgramMemory::find(nonneg int exprid)
248248
{
249-
return std::find_if(mValues->begin(), mValues->end(), [&exprid](const Map::value_type& entry) {
250-
return entry.first.getExpressionId() == exprid;
251-
});
249+
ExprIdToken exprIdToken(nullptr);
250+
exprIdToken.exprid = exprid;
251+
return mValues->find(exprIdToken);
252252
}
253253

254254
static ValueFlow::Value execute(const Token* expr, ProgramMemory& pm, const Settings& settings);

0 commit comments

Comments
 (0)