Skip to content

Commit 3c68b9b

Browse files
authored
use cbegin() and cend() with const_ierator loops (cppcheck-opensource#4658)
1 parent f8132ea commit 3c68b9b

35 files changed

Lines changed: 133 additions & 133 deletions

cli/cppcheckexecutor.cpp

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -179,7 +179,7 @@ bool CppCheckExecutor::parseFromArgs(CppCheck *cppcheck, int argc, const char* c
179179
return false;
180180
} else if (!mSettings->fileFilters.empty() && settings.project.fileSettings.empty()) {
181181
std::map<std::string, std::size_t> newMap;
182-
for (std::map<std::string, std::size_t>::const_iterator i = mFiles.begin(); i != mFiles.end(); ++i)
182+
for (std::map<std::string, std::size_t>::const_iterator i = mFiles.cbegin(); i != mFiles.cend(); ++i)
183183
if (matchglobs(mSettings->fileFilters, i->first)) {
184184
newMap[i->first] = i->second;
185185
}
@@ -250,7 +250,7 @@ bool CppCheckExecutor::reportSuppressions(const Settings &settings, bool unusedF
250250

251251
bool err = false;
252252
if (settings.jointSuppressionReport) {
253-
for (std::map<std::string, std::size_t>::const_iterator i = files.begin(); i != files.end(); ++i) {
253+
for (std::map<std::string, std::size_t>::const_iterator i = files.cbegin(); i != files.cend(); ++i) {
254254
err |= errorLogger.reportUnmatchedSuppressions(
255255
settings.nomsg.getUnmatchedLocalSuppressions(i->first, unusedFunctionCheckEnabled));
256256
}
@@ -311,7 +311,7 @@ int CppCheckExecutor::check_internal(CppCheck& cppcheck)
311311
settings.loadSummaries();
312312

313313
std::list<std::string> fileNames;
314-
for (std::map<std::string, std::size_t>::const_iterator i = mFiles.begin(); i != mFiles.end(); ++i)
314+
for (std::map<std::string, std::size_t>::const_iterator i = mFiles.cbegin(); i != mFiles.cend(); ++i)
315315
fileNames.emplace_back(i->first);
316316
AnalyzerInformation::writeFilesTxt(settings.buildDir, fileNames, settings.userDefines, settings.project.fileSettings);
317317
}
@@ -328,7 +328,7 @@ int CppCheckExecutor::check_internal(CppCheck& cppcheck)
328328
std::size_t processedsize = 0;
329329
unsigned int c = 0;
330330
if (settings.project.fileSettings.empty()) {
331-
for (std::map<std::string, std::size_t>::const_iterator i = mFiles.begin(); i != mFiles.end(); ++i) {
331+
for (std::map<std::string, std::size_t>::const_iterator i = mFiles.cbegin(); i != mFiles.cend(); ++i) {
332332
if (!mSettings->library.markupFile(i->first)
333333
|| !mSettings->library.processMarkupAfterCode(i->first)) {
334334
returnValue += cppcheck.check(i->first);
@@ -353,7 +353,7 @@ int CppCheckExecutor::check_internal(CppCheck& cppcheck)
353353

354354
// second loop to parse all markup files which may not work until all
355355
// c/cpp files have been parsed and checked
356-
for (std::map<std::string, std::size_t>::const_iterator i = mFiles.begin(); i != mFiles.end(); ++i) {
356+
for (std::map<std::string, std::size_t>::const_iterator i = mFiles.cbegin(); i != mFiles.cend(); ++i) {
357357
if (mSettings->library.markupFile(i->first) && mSettings->library.processMarkupAfterCode(i->first)) {
358358
returnValue += cppcheck.check(i->first);
359359
processedsize += i->second;

cli/cppcheckexecutorsig.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -317,7 +317,7 @@ int check_wrapper_sig(CppCheckExecutor& executor, int (CppCheckExecutor::*f)(Cpp
317317
memset(&act, 0, sizeof(act));
318318
act.sa_flags=SA_SIGINFO|SA_ONSTACK;
319319
act.sa_sigaction=CppcheckSignalHandler;
320-
for (std::map<int, std::string>::const_iterator sig=listofsignals.begin(); sig!=listofsignals.end(); ++sig) {
320+
for (std::map<int, std::string>::const_iterator sig=listofsignals.cbegin(); sig!=listofsignals.cend(); ++sig) {
321321
sigaction(sig->first, &act, nullptr);
322322
}
323323
return (&executor->*f)(cppcheck);

cli/processexecutor.cpp

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -226,12 +226,12 @@ unsigned int ProcessExecutor::check()
226226
std::map<pid_t, std::string> childFile;
227227
std::map<int, std::string> pipeFile;
228228
std::size_t processedsize = 0;
229-
std::map<std::string, std::size_t>::const_iterator iFile = mFiles.begin();
230-
std::list<ImportProject::FileSettings>::const_iterator iFileSettings = mSettings.project.fileSettings.begin();
229+
std::map<std::string, std::size_t>::const_iterator iFile = mFiles.cbegin();
230+
std::list<ImportProject::FileSettings>::const_iterator iFileSettings = mSettings.project.fileSettings.cbegin();
231231
for (;;) {
232232
// Start a new child
233233
const size_t nchildren = childFile.size();
234-
if ((iFile != mFiles.end() || iFileSettings != mSettings.project.fileSettings.end()) && nchildren < mSettings.jobs && checkLoadAverage(nchildren)) {
234+
if ((iFile != mFiles.cend() || iFileSettings != mSettings.project.fileSettings.cend()) && nchildren < mSettings.jobs && checkLoadAverage(nchildren)) {
235235
int pipes[2];
236236
if (pipe(pipes) == -1) {
237237
std::cerr << "#### ThreadExecutor::check, pipe() failed: "<< std::strerror(errno) << std::endl;
@@ -293,7 +293,7 @@ unsigned int ProcessExecutor::check()
293293
if (!rpipes.empty()) {
294294
fd_set rfds;
295295
FD_ZERO(&rfds);
296-
for (std::list<int>::const_iterator rp = rpipes.begin(); rp != rpipes.end(); ++rp)
296+
for (std::list<int>::const_iterator rp = rpipes.cbegin(); rp != rpipes.cend(); ++rp)
297297
FD_SET(*rp, &rfds);
298298
struct timeval tv; // for every second polling of load average condition
299299
tv.tv_sec = 1;

gui/checkthread.cpp

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -162,9 +162,9 @@ void CheckThread::runAddonsAndTools(const ImportProject::FileSettings *fileSetti
162162
continue;
163163

164164
QStringList args;
165-
for (std::list<std::string>::const_iterator incIt = fileSettings->includePaths.begin(); incIt != fileSettings->includePaths.end(); ++incIt)
165+
for (std::list<std::string>::const_iterator incIt = fileSettings->includePaths.cbegin(); incIt != fileSettings->includePaths.cend(); ++incIt)
166166
args << ("-I" + QString::fromStdString(*incIt));
167-
for (std::list<std::string>::const_iterator i = fileSettings->systemIncludePaths.begin(); i != fileSettings->systemIncludePaths.end(); ++i)
167+
for (std::list<std::string>::const_iterator i = fileSettings->systemIncludePaths.cbegin(); i != fileSettings->systemIncludePaths.cend(); ++i)
168168
args << "-isystem" << QString::fromStdString(*i);
169169
for (const QString& def : QString::fromStdString(fileSettings->defines).split(";")) {
170170
args << ("-D" + def);

gui/erroritem.cpp

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -52,8 +52,8 @@ ErrorItem::ErrorItem(const ErrorMessage &errmsg)
5252
, hash(errmsg.hash)
5353
, symbolNames(QString::fromStdString(errmsg.symbolNames()))
5454
{
55-
for (std::list<ErrorMessage::FileLocation>::const_iterator loc = errmsg.callStack.begin();
56-
loc != errmsg.callStack.end();
55+
for (std::list<ErrorMessage::FileLocation>::const_iterator loc = errmsg.callStack.cbegin();
56+
loc != errmsg.callStack.cend();
5757
++loc) {
5858
errorPath << QErrorPathItem(*loc);
5959
}

gui/mainwindow.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -681,7 +681,7 @@ void MainWindow::analyzeFiles()
681681

682682
if (file0.endsWith(".sln")) {
683683
QStringList configs;
684-
for (std::list<ImportProject::FileSettings>::const_iterator it = p.fileSettings.begin(); it != p.fileSettings.end(); ++it) {
684+
for (std::list<ImportProject::FileSettings>::const_iterator it = p.fileSettings.cbegin(); it != p.fileSettings.cend(); ++it) {
685685
const QString cfg(QString::fromStdString(it->cfg));
686686
if (!configs.contains(cfg))
687687
configs.push_back(cfg);

lib/checkautovariables.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -131,7 +131,7 @@ static bool isAutoVarArray(const Token *tok)
131131

132132
// ValueFlow
133133
if (var->isPointer() && !var->isArgument()) {
134-
for (std::list<ValueFlow::Value>::const_iterator it = tok->values().begin(); it != tok->values().end(); ++it) {
134+
for (std::list<ValueFlow::Value>::const_iterator it = tok->values().cbegin(); it != tok->values().cend(); ++it) {
135135
const ValueFlow::Value &val = *it;
136136
if (val.isTokValue() && isAutoVarArray(val.tokvalue))
137137
return true;

lib/checkclass.cpp

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -451,7 +451,7 @@ void CheckClass::copyconstructors()
451451
}
452452
if (!funcDestructor || funcDestructor->isDefault()) {
453453
const Token * mustDealloc = nullptr;
454-
for (std::map<int, const Token*>::const_iterator it = allocatedVars.begin(); it != allocatedVars.end(); ++it) {
454+
for (std::map<int, const Token*>::const_iterator it = allocatedVars.cbegin(); it != allocatedVars.cend(); ++it) {
455455
if (!Token::Match(it->second, "%var% [(=] new %type%")) {
456456
mustDealloc = it->second;
457457
break;
@@ -1198,7 +1198,7 @@ static bool checkFunctionUsage(const Function *privfunc, const Scope* scope)
11981198
if (!scope)
11991199
return true; // Assume it is used, if scope is not seen
12001200

1201-
for (std::list<Function>::const_iterator func = scope->functionList.begin(); func != scope->functionList.end(); ++func) {
1201+
for (std::list<Function>::const_iterator func = scope->functionList.cbegin(); func != scope->functionList.cend(); ++func) {
12021202
if (func->functionScope) {
12031203
if (Token::Match(func->tokenDef, "%name% (")) {
12041204
for (const Token *ftok = func->tokenDef->tokAt(2); ftok && ftok->str() != ")"; ftok = ftok->next()) {
@@ -1220,8 +1220,8 @@ static bool checkFunctionUsage(const Function *privfunc, const Scope* scope)
12201220
return true;
12211221
}
12221222

1223-
const std::map<std::string, Type*>::const_iterator end = scope->definedTypesMap.end();
1224-
for (std::map<std::string, Type*>::const_iterator iter = scope->definedTypesMap.begin(); iter != end; ++iter) {
1223+
const std::map<std::string, Type*>::const_iterator end = scope->definedTypesMap.cend();
1224+
for (std::map<std::string, Type*>::const_iterator iter = scope->definedTypesMap.cbegin(); iter != end; ++iter) {
12251225
const Type *type = (*iter).second;
12261226
if (type->enclosingScope == scope && checkFunctionUsage(privfunc, type->classScope))
12271227
return true;
@@ -1534,7 +1534,7 @@ void CheckClass::operatorEqRetRefThis()
15341534
return;
15351535

15361536
for (const Scope * scope : mSymbolDatabase->classAndStructScopes) {
1537-
for (std::list<Function>::const_iterator func = scope->functionList.begin(); func != scope->functionList.end(); ++func) {
1537+
for (std::list<Function>::const_iterator func = scope->functionList.cbegin(); func != scope->functionList.cend(); ++func) {
15381538
if (func->type == Function::eOperatorEqual && func->hasBody()) {
15391539
// make sure return signature is correct
15401540
if (func->retType == func->nestedIn->definedType && func->tokenDef->strAt(-1) == "&") {
@@ -1582,7 +1582,7 @@ void CheckClass::checkReturnPtrThis(const Scope *scope, const Function *func, co
15821582
if (tok->strAt(2) == "(" &&
15831583
tok->linkAt(2)->next()->str() == ";") {
15841584
// check if it is a member function
1585-
for (std::list<Function>::const_iterator it = scope->functionList.begin(); it != scope->functionList.end(); ++it) {
1585+
for (std::list<Function>::const_iterator it = scope->functionList.cbegin(); it != scope->functionList.cend(); ++it) {
15861586
// check for a regular function with the same name and a body
15871587
if (it->type == Function::eFunction && it->hasBody() &&
15881588
it->token->str() == tok->next()->str()) {
@@ -2523,7 +2523,7 @@ void CheckClass::initializerListOrder()
25232523
for (const Scope * scope : mSymbolDatabase->classAndStructScopes) {
25242524

25252525
// iterate through all member functions looking for constructors
2526-
for (std::list<Function>::const_iterator func = scope->functionList.begin(); func != scope->functionList.end(); ++func) {
2526+
for (std::list<Function>::const_iterator func = scope->functionList.cbegin(); func != scope->functionList.cend(); ++func) {
25272527
if (func->isConstructor() && func->hasBody()) {
25282528
// check for initializer list
25292529
const Token *tok = func->arg->link()->next();
@@ -2861,7 +2861,7 @@ void CheckClass::checkCopyCtorAndEqOperator()
28612861
for (const Scope * scope : mSymbolDatabase->classAndStructScopes) {
28622862

28632863
bool hasNonStaticVars = false;
2864-
for (std::list<Variable>::const_iterator var = scope->varlist.begin(); var != scope->varlist.end(); ++var) {
2864+
for (std::list<Variable>::const_iterator var = scope->varlist.cbegin(); var != scope->varlist.cend(); ++var) {
28652865
if (!var->isStatic()) {
28662866
hasNonStaticVars = true;
28672867
break;

lib/checkio.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -600,7 +600,7 @@ void CheckIO::checkFormatString(const Token * const tok,
600600
bool percent = false;
601601
const Token* argListTok2 = argListTok;
602602
std::set<int> parameterPositionsUsed;
603-
for (std::string::const_iterator i = formatString.begin(); i != formatString.end(); ++i) {
603+
for (std::string::const_iterator i = formatString.cbegin(); i != formatString.cend(); ++i) {
604604
if (*i == '%') {
605605
percent = !percent;
606606
} else if (percent && *i == '[') {

lib/checkleakautovar.cpp

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -92,7 +92,7 @@ static bool isVarTokComparison(const Token * tok, const Token ** vartok,
9292
void VarInfo::print()
9393
{
9494
std::cout << "size=" << alloctype.size() << std::endl;
95-
for (std::map<int, AllocInfo>::const_iterator it = alloctype.begin(); it != alloctype.end(); ++it) {
95+
for (std::map<int, AllocInfo>::const_iterator it = alloctype.cbegin(); it != alloctype.cend(); ++it) {
9696
std::string strusage;
9797
const std::map<int, std::string>::const_iterator use =
9898
possibleUsage.find(it->first);
@@ -134,7 +134,7 @@ void VarInfo::print()
134134
void VarInfo::possibleUsageAll(const std::string &functionName)
135135
{
136136
possibleUsage.clear();
137-
for (std::map<int, AllocInfo>::const_iterator it = alloctype.begin(); it != alloctype.end(); ++it)
137+
for (std::map<int, AllocInfo>::const_iterator it = alloctype.cbegin(); it != alloctype.cend(); ++it)
138138
possibleUsage[it->first] = functionName;
139139
}
140140

@@ -551,7 +551,7 @@ bool CheckLeakAutoVar::checkScope(const Token * const startToken,
551551

552552
std::map<int, VarInfo::AllocInfo>::const_iterator it;
553553

554-
for (it = old.alloctype.begin(); it != old.alloctype.end(); ++it) {
554+
for (it = old.alloctype.cbegin(); it != old.alloctype.cend(); ++it) {
555555
const int varId = it->first;
556556
if (old.conditionalAlloc.find(varId) == old.conditionalAlloc.end())
557557
continue;
@@ -563,29 +563,29 @@ bool CheckLeakAutoVar::checkScope(const Token * const startToken,
563563
}
564564

565565
// Conditional allocation in varInfo1
566-
for (it = varInfo1.alloctype.begin(); it != varInfo1.alloctype.end(); ++it) {
566+
for (it = varInfo1.alloctype.cbegin(); it != varInfo1.alloctype.cend(); ++it) {
567567
if (varInfo2.alloctype.find(it->first) == varInfo2.alloctype.end() &&
568568
old.alloctype.find(it->first) == old.alloctype.end()) {
569569
varInfo->conditionalAlloc.insert(it->first);
570570
}
571571
}
572572

573573
// Conditional allocation in varInfo2
574-
for (it = varInfo2.alloctype.begin(); it != varInfo2.alloctype.end(); ++it) {
574+
for (it = varInfo2.alloctype.cbegin(); it != varInfo2.alloctype.cend(); ++it) {
575575
if (varInfo1.alloctype.find(it->first) == varInfo1.alloctype.end() &&
576576
old.alloctype.find(it->first) == old.alloctype.end()) {
577577
varInfo->conditionalAlloc.insert(it->first);
578578
}
579579
}
580580

581581
// Conditional allocation/deallocation
582-
for (it = varInfo1.alloctype.begin(); it != varInfo1.alloctype.end(); ++it) {
582+
for (it = varInfo1.alloctype.cbegin(); it != varInfo1.alloctype.cend(); ++it) {
583583
if (it->second.managed() && conditionalAlloc.find(it->first) != conditionalAlloc.end()) {
584584
varInfo->conditionalAlloc.erase(it->first);
585585
varInfo2.erase(it->first);
586586
}
587587
}
588-
for (it = varInfo2.alloctype.begin(); it != varInfo2.alloctype.end(); ++it) {
588+
for (it = varInfo2.alloctype.cbegin(); it != varInfo2.alloctype.cend(); ++it) {
589589
if (it->second.managed() && conditionalAlloc.find(it->first) != conditionalAlloc.end()) {
590590
varInfo->conditionalAlloc.erase(it->first);
591591
varInfo1.erase(it->first);
@@ -1024,7 +1024,7 @@ void CheckLeakAutoVar::ret(const Token *tok, VarInfo &varInfo, const bool isEndO
10241024
std::vector<int> toRemove;
10251025

10261026
const SymbolDatabase *symbolDatabase = mTokenizer->getSymbolDatabase();
1027-
for (std::map<int, VarInfo::AllocInfo>::const_iterator it = alloctype.begin(); it != alloctype.end(); ++it) {
1027+
for (std::map<int, VarInfo::AllocInfo>::const_iterator it = alloctype.cbegin(); it != alloctype.cend(); ++it) {
10281028
// don't warn if variable is conditionally allocated, unless it leaves the scope
10291029
if (!isEndOfScope && !it->second.managed() && varInfo.conditionalAlloc.find(it->first) != varInfo.conditionalAlloc.end())
10301030
continue;

0 commit comments

Comments
 (0)