Skip to content

Commit d58389d

Browse files
authored
avoid using a temporary object when inserting into a container (danmar#7102)
1 parent 5be15e3 commit d58389d

File tree

9 files changed

+19
-20
lines changed

9 files changed

+19
-20
lines changed

lib/checkio.cpp

Lines changed: 5 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -141,11 +141,11 @@ void CheckIO::checkFileUsage()
141141

142142
if (var->isLocal()) {
143143
if (var->nameToken()->strAt(1) == "(") // initialize by calling "ctor"
144-
filepointers.insert(std::make_pair(var->declarationId(), Filepointer(OpenMode::UNKNOWN_OM)));
144+
filepointers.emplace(var->declarationId(), Filepointer(OpenMode::UNKNOWN_OM));
145145
else
146-
filepointers.insert(std::make_pair(var->declarationId(), Filepointer(OpenMode::CLOSED)));
146+
filepointers.emplace(var->declarationId(), Filepointer(OpenMode::CLOSED));
147147
} else {
148-
filepointers.insert(std::make_pair(var->declarationId(), Filepointer(OpenMode::UNKNOWN_OM)));
148+
filepointers.emplace(var->declarationId(), Filepointer(OpenMode::UNKNOWN_OM));
149149
// TODO: If all fopen calls we find open the file in the same type, we can set Filepointer::mode
150150
}
151151
}
@@ -281,9 +281,8 @@ void CheckIO::checkFileUsage()
281281
if (!fileTok || !fileTok->varId() || fileTok->strAt(1) == "[")
282282
continue;
283283

284-
if (filepointers.find(fileTok->varId()) == filepointers.end()) { // function call indicates: Its a File
285-
filepointers.insert(std::make_pair(fileTok->varId(), Filepointer(OpenMode::UNKNOWN_OM)));
286-
}
284+
// function call indicates: Its a File
285+
filepointers.emplace(fileTok->varId(), Filepointer(OpenMode::UNKNOWN_OM));
287286

288287
Filepointer& f = filepointers[fileTok->varId()];
289288

lib/checkother.cpp

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2472,8 +2472,8 @@ void CheckOther::checkInvalidFree()
24722472
// Keep track of which variables were assigned addresses to newly-allocated memory
24732473
if ((tok->isCpp() && Token::Match(tok, "%var% = new")) ||
24742474
(Token::Match(tok, "%var% = %name% (") && mSettings->library.getAllocFuncInfo(tok->tokAt(2)))) {
2475-
allocation.insert(std::make_pair(tok->varId(), tok->strAt(2)));
2476-
inconclusive.insert(std::make_pair(tok->varId(), false));
2475+
allocation.emplace(tok->varId(), tok->strAt(2));
2476+
inconclusive.emplace(tok->varId(), false);
24772477
}
24782478

24792479
// If a previously-allocated pointer is incremented or decremented, any subsequent

lib/checkstl.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -984,7 +984,7 @@ namespace {
984984
void add(const Reference& r) {
985985
if (!r.tok)
986986
return;
987-
expressions.insert(std::make_pair(r.tok->exprId(), r));
987+
expressions.emplace(r.tok->exprId(), r);
988988
}
989989

990990
std::vector<Reference> invalidTokens() const {

lib/checkunusedvar.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -263,7 +263,7 @@ void Variables::addVar(const Variable *var,
263263
bool write_)
264264
{
265265
if (var->declarationId() > 0) {
266-
mVarUsage.insert(std::make_pair(var->declarationId(), VariableUsage(var, type, false, write_, false)));
266+
mVarUsage.emplace(var->declarationId(), VariableUsage(var, type, false, write_, false));
267267
}
268268
}
269269

lib/clangimport.cpp

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -234,26 +234,26 @@ namespace clangimport {
234234

235235
void enumDecl(const std::string &addr, Token *nameToken, Enumerator *enumerator) {
236236
Decl decl(nameToken, enumerator);
237-
mDeclMap.insert(std::pair<std::string, Decl>(addr, decl));
237+
mDeclMap.emplace(addr, decl);
238238
nameToken->enumerator(enumerator);
239239
notFound(addr);
240240
}
241241

242242
void funcDecl(const std::string &addr, Token *nameToken, Function *function) {
243243
Decl decl(nameToken, function);
244-
mDeclMap.insert(std::pair<std::string, Decl>(addr, decl));
244+
mDeclMap.emplace(addr, decl);
245245
nameToken->function(function);
246246
notFound(addr);
247247
}
248248

249249
void scopeDecl(const std::string &addr, Scope *scope) {
250250
Decl decl(scope);
251-
mDeclMap.insert(std::pair<std::string, Decl>(addr, decl));
251+
mDeclMap.emplace(addr, decl);
252252
}
253253

254254
void varDecl(const std::string &addr, Token *def, Variable *var) {
255255
Decl decl(def, var);
256-
mDeclMap.insert(std::pair<std::string, Decl>(addr, decl));
256+
mDeclMap.emplace(addr, decl);
257257
def->varId(++mVarId);
258258
def->variable(var);
259259
if (def->valueType())

lib/symboldatabase.cpp

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1250,13 +1250,13 @@ void SymbolDatabase::fixVarId(VarIdMap & varIds, const Token * vartok, Token * m
12501250
mVariableList.push_back(membervar);
12511251
} else
12521252
mVariableList[membertok->varId()] = membervar;
1253-
varIds.insert(std::make_pair(vartok->varId(), memberId));
1253+
varIds.emplace(vartok->varId(), memberId);
12541254
varId = varIds.find(vartok->varId());
12551255
}
12561256
MemberIdMap::const_iterator memberId = varId->second.find(membervar->nameToken()->varId());
12571257
if (memberId == varId->second.cend()) {
12581258
if (membertok->varId() == 0) {
1259-
varId->second.insert(std::make_pair(membervar->nameToken()->varId(), mTokenizer.newVarId()));
1259+
varId->second.emplace(membervar->nameToken()->varId(), mTokenizer.newVarId());
12601260
mVariableList.push_back(membervar);
12611261
memberId = varId->second.find(membervar->nameToken()->varId());
12621262
} else

lib/symboldatabase.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1162,7 +1162,7 @@ class CPPCHECKLIB Scope {
11621162

11631163
const Function * back = &functionList.back();
11641164

1165-
functionMap.insert(make_pair(back->tokenDef->str(), back));
1165+
functionMap.emplace(back->tokenDef->str(), back);
11661166
}
11671167

11681168
AccessControl defaultAccess() const;

lib/templatesimplifier.cpp

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -780,12 +780,12 @@ void TemplateSimplifier::getTemplateInstantiations()
780780

781781
for (const auto & decl : mTemplateDeclarations) {
782782
if (decl.isFunction())
783-
functionNameMap.insert(std::make_pair(decl.name(), &decl));
783+
functionNameMap.emplace(decl.name(), &decl);
784784
}
785785

786786
for (const auto & decl : mTemplateForwardDeclarations) {
787787
if (decl.isFunction())
788-
functionNameMap.insert(std::make_pair(decl.name(), &decl));
788+
functionNameMap.emplace(decl.name(), &decl);
789789
}
790790

791791
const Token *skip = nullptr;

lib/valueflow.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5933,7 +5933,7 @@ static void valueFlowUninit(TokenList& tokenlist, ErrorLogger& errorLogger, cons
59335933
Token* tok2 = p.first;
59345934
const ValueFlow::Value& v = p.second;
59355935
// Try to insert into map
5936-
auto pp = partialReads.insert(std::make_pair(tok2, v));
5936+
auto pp = partialReads.emplace(tok2, v);
59375937
ValueFlow::Value& v2 = pp.first->second;
59385938
const bool inserted = pp.second;
59395939
// Merge the two values if it is already in map

0 commit comments

Comments
 (0)