Skip to content

Commit 26f1287

Browse files
authored
[gui] Prevent detaching from Q containers in range-based for loop (danmar#8311)
Use utils::as_const Found by Clazy (range-loop-detach).
1 parent 3744a3a commit 26f1287

File tree

10 files changed

+25
-19
lines changed

10 files changed

+25
-19
lines changed

gui/checkthread.cpp

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -190,7 +190,7 @@ void CheckThread::run()
190190

191191
void CheckThread::runAddonsAndTools(const Settings& settings, const FileSettings *fileSettings, const QString &fileName)
192192
{
193-
for (const QString& addon : mAddonsAndTools) {
193+
for (const QString& addon : utils::as_const(mAddonsAndTools)) {
194194
if (addon == CLANG_ANALYZER || addon == CLANG_TIDY) {
195195
if (!fileSettings)
196196
continue;
@@ -303,7 +303,7 @@ void CheckThread::runAddonsAndTools(const Settings& settings, const FileSettings
303303
{
304304
const QString cmd(clangTidyCmd());
305305
QString debug(cmd.contains(" ") ? ('\"' + cmd + '\"') : cmd);
306-
for (const QString& arg : args) {
306+
for (const QString& arg : utils::as_const(args)) {
307307
if (arg.contains(" "))
308308
debug += " \"" + arg + '\"';
309309
else

gui/codeeditor.cpp

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@
1919
#include "codeeditor.h"
2020

2121
#include "codeeditorstyle.h"
22+
#include "utils.h"
2223

2324
#include <QChar>
2425
#include <QColor>
@@ -133,7 +134,7 @@ Highlighter::Highlighter(QTextDocument *parent,
133134
<< "volatile"
134135
<< "wchar_t"
135136
<< "while";
136-
for (const QString &pattern : keywordPatterns) {
137+
for (const QString &pattern : utils::as_const(keywordPatterns)) {
137138
rule.pattern = QRegularExpression("\\b" + pattern + "\\b");
138139
rule.format = mKeywordFormat;
139140
rule.ruleRole = RuleRole::Keyword;
@@ -216,7 +217,7 @@ void Highlighter::setStyle(const CodeEditorStyle &newStyle)
216217

217218
void Highlighter::highlightBlock(const QString &text)
218219
{
219-
for (const HighlightingRule &rule : mHighlightingRulesWithSymbols) {
220+
for (const HighlightingRule &rule : utils::as_const(mHighlightingRulesWithSymbols)) {
220221
QRegularExpressionMatchIterator matchIterator = rule.pattern.globalMatch(text);
221222
while (matchIterator.hasNext()) {
222223
QRegularExpressionMatch match = matchIterator.next();

gui/compliancereportdialog.cpp

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,7 @@
2525
#include "filesettings.h"
2626
#include "importproject.h"
2727
#include "projectfile.h"
28+
#include "utils.h"
2829

2930
#include <algorithm>
3031
#include <iterator>
@@ -191,7 +192,7 @@ void ComplianceReportDialog::save()
191192
QSet<QString> allFiles;
192193
for (const QString &sourcefile: fileList.getFileList())
193194
addHeaders(sourcefile, allFiles);
194-
for (const QString& fileName: allFiles) {
195+
for (const QString& fileName: utils::as_const(allFiles)) {
195196
QFile f(fileName);
196197
if (f.open(QFile::ReadOnly)) {
197198
QCryptographicHash hash(QCryptographicHash::Algorithm::Md5);

gui/helpdialog.cpp

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@
1919
#include "helpdialog.h"
2020

2121
#include "common.h"
22+
#include "utils.h"
2223

2324
#include "ui_helpdialog.h"
2425

@@ -65,7 +66,7 @@ static QString getHelpFile()
6566
paths << (filesdir + "/help")
6667
<< filesdir;
6768
#endif
68-
for (const QString &p: paths) {
69+
for (const QString &p: utils::as_const(paths)) {
6970
QString filename = p + "/online-help.qhc";
7071
if (QFileInfo::exists(filename))
7172
return filename;

gui/librarydialog.cpp

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -292,11 +292,11 @@ void LibraryDialog::filterFunctions(const QString& filter)
292292
QList<QListWidgetItem *> allItems = mUi->functions->findItems(QString(), Qt::MatchContains);
293293

294294
if (filter.isEmpty()) {
295-
for (QListWidgetItem *item : allItems) {
295+
for (QListWidgetItem *item : utils::as_const(allItems)) {
296296
item->setHidden(false);
297297
}
298298
} else {
299-
for (QListWidgetItem *item : allItems) {
299+
for (QListWidgetItem *item : utils::as_const(allItems)) {
300300
item->setHidden(!item->text().startsWith(filter));
301301
}
302302
}

gui/projectfile.cpp

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -892,7 +892,7 @@ bool ProjectFile::write(const QString &filename)
892892

893893
if (!mIncludeDirs.isEmpty()) {
894894
xmlWriter.writeStartElement(CppcheckXml::IncludeDirElementName);
895-
for (const QString& incdir : mIncludeDirs) {
895+
for (const QString& incdir : utils::as_const(mIncludeDirs)) {
896896
xmlWriter.writeStartElement(CppcheckXml::DirElementName);
897897
xmlWriter.writeAttribute(CppcheckXml::DirNameAttrib, incdir);
898898
xmlWriter.writeEndElement();
@@ -902,7 +902,7 @@ bool ProjectFile::write(const QString &filename)
902902

903903
if (!mDefines.isEmpty()) {
904904
xmlWriter.writeStartElement(CppcheckXml::DefinesElementName);
905-
for (const QString& define : mDefines) {
905+
for (const QString& define : utils::as_const(mDefines)) {
906906
xmlWriter.writeStartElement(CppcheckXml::DefineName);
907907
xmlWriter.writeAttribute(CppcheckXml::DefineNameAttrib, define);
908908
xmlWriter.writeEndElement();
@@ -924,7 +924,7 @@ bool ProjectFile::write(const QString &filename)
924924

925925
if (!mPaths.isEmpty()) {
926926
xmlWriter.writeStartElement(CppcheckXml::PathsElementName);
927-
for (const QString& path : mPaths) {
927+
for (const QString& path : utils::as_const(mPaths)) {
928928
xmlWriter.writeStartElement(CppcheckXml::PathName);
929929
xmlWriter.writeAttribute(CppcheckXml::PathNameAttrib, path);
930930
xmlWriter.writeEndElement();
@@ -934,7 +934,7 @@ bool ProjectFile::write(const QString &filename)
934934

935935
if (!mExcludedPaths.isEmpty()) {
936936
xmlWriter.writeStartElement(CppcheckXml::ExcludeElementName);
937-
for (const QString& path : mExcludedPaths) {
937+
for (const QString& path : utils::as_const(mExcludedPaths)) {
938938
xmlWriter.writeStartElement(CppcheckXml::ExcludePathName);
939939
xmlWriter.writeAttribute(CppcheckXml::ExcludePathNameAttrib, path);
940940
xmlWriter.writeEndElement();
@@ -949,7 +949,7 @@ bool ProjectFile::write(const QString &filename)
949949

950950
if (!mSuppressions.isEmpty()) {
951951
xmlWriter.writeStartElement(CppcheckXml::SuppressionsElementName);
952-
for (const SuppressionList::Suppression &suppression : mSuppressions) {
952+
for (const SuppressionList::Suppression &suppression : utils::as_const(mSuppressions)) {
953953
xmlWriter.writeStartElement(CppcheckXml::SuppressionElementName);
954954
if (!suppression.fileName.empty())
955955
xmlWriter.writeAttribute("fileName", QString::fromStdString(suppression.fileName));
@@ -1169,7 +1169,7 @@ QString ProjectFile::getAddonFilePath(QString filesDir, const QString &addon)
11691169
#endif
11701170
;
11711171

1172-
for (const QString& path : searchPaths) {
1172+
for (const QString& path : utils::as_const(searchPaths)) {
11731173
QString f = path + addon + ".py";
11741174
if (QFile(f).exists())
11751175
return f;

gui/projectfiledialog.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -194,7 +194,7 @@ ProjectFileDialog::ProjectFileDialog(ProjectFile *projectFile, bool premium, QWi
194194
}
195195
libs.sort();
196196
mUI->mLibraries->clear();
197-
for (const QString &lib : libs) {
197+
for (const QString &lib : utils::as_const(libs)) {
198198
auto* item = new QListWidgetItem(lib, mUI->mLibraries);
199199
item->setFlags(item->flags() | Qt::ItemIsUserCheckable); // set checkable flag
200200
item->setCheckState(Qt::Unchecked); // AND initialize check state

gui/resultsview.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -423,7 +423,7 @@ void ResultsView::readErrorsXml(const QString &filename)
423423
msgBox.exec();
424424
}
425425

426-
for (const ErrorItem& item : errors) {
426+
for (const ErrorItem& item : utils::as_const(errors)) {
427427
handleCriticalError(item);
428428
mUI->mTree->addErrorItem(item);
429429
}

gui/threaddetails.cpp

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,6 @@
11
#include "threaddetails.h"
2+
#include "utils.h"
3+
24
#include "ui_threaddetails.h"
35

46
#include <QMutexLocker>
@@ -43,7 +45,7 @@ void ThreadDetails::updateUI() {
4345
QString text("Thread\tStart time\tFile/Progress\n");
4446
{
4547
QMutexLocker locker(&mMutex);
46-
for (const auto& td: mThreadDetails) {
48+
for (const auto& td: utils::as_const(mThreadDetails)) {
4749
auto& timeProgress = mProgress[td.file];
4850
if (timeProgress.first.isEmpty() && !timeProgress.second.isEmpty())
4951
timeProgress.first = QTime::currentTime().toString(Qt::TextDate);

gui/threadhandler.cpp

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,7 @@
2323
#include "filesettings.h"
2424
#include "resultsview.h"
2525
#include "settings.h"
26+
#include "utils.h"
2627

2728
#include <algorithm>
2829
#include <string>
@@ -161,7 +162,7 @@ void ThreadHandler::createThreads(const int count)
161162

162163
void ThreadHandler::removeThreads()
163164
{
164-
for (CheckThread* thread : mThreads) {
165+
for (CheckThread* thread : utils::as_const(mThreads)) {
165166
if (thread->isRunning()) {
166167
thread->stop();
167168
thread->wait();
@@ -216,7 +217,7 @@ void ThreadHandler::stop()
216217
mCheckStartTime = QDateTime();
217218
mAnalyseWholeProgram = false;
218219
mCtuInfo.clear();
219-
for (CheckThread* thread : mThreads) {
220+
for (CheckThread* thread : utils::as_const(mThreads)) {
220221
thread->stop();
221222
}
222223
}

0 commit comments

Comments
 (0)