From a3ce1235493622e51aa872511ea80081f9e96805 Mon Sep 17 00:00:00 2001 From: Marc Mutz Date: Wed, 23 Dec 2015 00:15:30 +0100 Subject: QtCore: eradicate all Q_FOREACH loops [tools] Saves just under 5.5KiB in text size on optimized GCC 4.9 Linux AMD64 builds. Change-Id: I6d868a7d2e469cf0564127b0e66cd7b272a0c9cd Reviewed-by: Thiago Macieira --- src/corelib/tools/qcommandlineparser.cpp | 20 +++++++++----------- src/corelib/tools/qlocale_win.cpp | 2 +- src/corelib/tools/qstring.cpp | 4 ++-- src/corelib/tools/qtimezone.cpp | 6 +++--- src/corelib/tools/qtimezoneprivate_tz.cpp | 8 ++++---- src/corelib/tools/qtimezoneprivate_win.cpp | 9 +++++---- 6 files changed, 24 insertions(+), 25 deletions(-) (limited to 'src/corelib') diff --git a/src/corelib/tools/qcommandlineparser.cpp b/src/corelib/tools/qcommandlineparser.cpp index 89685a470a..317ace57e4 100644 --- a/src/corelib/tools/qcommandlineparser.cpp +++ b/src/corelib/tools/qcommandlineparser.cpp @@ -348,10 +348,10 @@ void QCommandLineParser::setOptionsAfterPositionalArgumentsMode(QCommandLinePars */ bool QCommandLineParser::addOption(const QCommandLineOption &option) { - QStringList optionNames = option.names(); + const QStringList optionNames = option.names(); if (!optionNames.isEmpty()) { - foreach (const QString &name, optionNames) { + for (const QString &name : optionNames) { if (d->nameHash.contains(name)) return false; } @@ -359,7 +359,7 @@ bool QCommandLineParser::addOption(const QCommandLineOption &option) d->commandLineOptionList.append(option); const int offset = d->commandLineOptionList.size() - 1; - foreach (const QString &name, optionNames) + for (const QString &name : optionNames) d->nameHash.insert(name, offset); return true; @@ -791,7 +791,7 @@ bool QCommandLineParser::isSet(const QString &name) const if (d->optionNames.contains(name)) return true; const QStringList aliases = d->aliases(name); - foreach (const QString &optionName, d->optionNames) { + for (const QString &optionName : qAsConst(d->optionNames)) { if (aliases.contains(optionName)) return true; } @@ -1073,7 +1073,7 @@ QString QCommandLineParserPrivate::helpText() const usage += QCoreApplication::instance()->arguments().constFirst(); // executable name if (!commandLineOptionList.isEmpty()) usage += QLatin1Char(' ') + QCommandLineParser::tr("[options]"); - foreach (const PositionalArgumentDefinition &arg, positionalArgumentDefinitions) + for (const PositionalArgumentDefinition &arg : positionalArgumentDefinitions) usage += QLatin1Char(' ') + arg.syntax; text += QCommandLineParser::tr("Usage: %1").arg(usage) + nl; if (!description.isEmpty()) @@ -1084,12 +1084,12 @@ QString QCommandLineParserPrivate::helpText() const QStringList optionNameList; optionNameList.reserve(commandLineOptionList.size()); int longestOptionNameString = 0; - foreach (const QCommandLineOption &option, commandLineOptionList) { + for (const QCommandLineOption &option : commandLineOptionList) { if (option.isHidden()) continue; const QStringList optionNames = option.names(); QString optionNamesString; - foreach (const QString &optionName, optionNames) { + for (const QString &optionName : optionNames) { const int numDashes = optionName.length() == 1 ? 1 : 2; optionNamesString += QLatin1String("--", numDashes) + optionName + QLatin1String(", "); } @@ -1103,8 +1103,7 @@ QString QCommandLineParserPrivate::helpText() const } ++longestOptionNameString; auto optionNameIterator = optionNameList.cbegin(); - for (int i = 0; i < commandLineOptionList.count(); ++i) { - const QCommandLineOption &option = commandLineOptionList.at(i); + for (const QCommandLineOption &option : commandLineOptionList) { if (option.isHidden()) continue; text += wrapText(*optionNameIterator, longestOptionNameString, option.description()); @@ -1114,9 +1113,8 @@ QString QCommandLineParserPrivate::helpText() const if (!commandLineOptionList.isEmpty()) text += nl; text += QCommandLineParser::tr("Arguments:") + nl; - foreach (const PositionalArgumentDefinition &arg, positionalArgumentDefinitions) { + for (const PositionalArgumentDefinition &arg : positionalArgumentDefinitions) text += wrapText(arg.name, longestOptionNameString, arg.description); - } } return text; } diff --git a/src/corelib/tools/qlocale_win.cpp b/src/corelib/tools/qlocale_win.cpp index a5eb7ec058..14133a83f1 100644 --- a/src/corelib/tools/qlocale_win.cpp +++ b/src/corelib/tools/qlocale_win.cpp @@ -678,7 +678,7 @@ QVariant QSystemLocalePrivate::uiLanguages() bool found = false; // Since ApplicationLanguages:::Languages uses long names, we compare the "pre-dash" part of // the language and filter it out, if it is already covered by a more specialized form. - foreach (const QString &lang, result) { + for (const QString &lang : qAsConst(result)) { int dashIndex = lang.indexOf('-'); // There will not be any long name after the first short name was found, so we can stop. if (dashIndex == -1) diff --git a/src/corelib/tools/qstring.cpp b/src/corelib/tools/qstring.cpp index 4ffad7031a..d4a589424e 100644 --- a/src/corelib/tools/qstring.cpp +++ b/src/corelib/tools/qstring.cpp @@ -3589,7 +3589,7 @@ QString &QString::replace(const QRegularExpression &re, const QString &after) lastEnd = 0; // add the after string, with replacements for the backreferences - foreach (const QStringCapture &backReference, backReferences) { + for (const QStringCapture &backReference : qAsConst(backReferences)) { // part of "after" before the backreference len = backReference.pos - lastEnd; if (len > 0) { @@ -3627,7 +3627,7 @@ QString &QString::replace(const QRegularExpression &re, const QString &after) resize(newLength); int i = 0; QChar *uc = data(); - foreach (const QStringRef &chunk, chunks) { + for (const QStringRef &chunk : qAsConst(chunks)) { int len = chunk.length(); memcpy(uc + i, chunk.unicode(), len * sizeof(QChar)); i += len; diff --git a/src/corelib/tools/qtimezone.cpp b/src/corelib/tools/qtimezone.cpp index 333a5c3471..5900923084 100644 --- a/src/corelib/tools/qtimezone.cpp +++ b/src/corelib/tools/qtimezone.cpp @@ -765,10 +765,10 @@ QTimeZone::OffsetDataList QTimeZone::transitions(const QDateTime &fromDateTime, { OffsetDataList list; if (hasTransitions()) { - QTimeZonePrivate::DataList plist = d->transitions(fromDateTime.toMSecsSinceEpoch(), - toDateTime.toMSecsSinceEpoch()); + const QTimeZonePrivate::DataList plist = d->transitions(fromDateTime.toMSecsSinceEpoch(), + toDateTime.toMSecsSinceEpoch()); list.reserve(plist.count()); - foreach (const QTimeZonePrivate::Data &pdata, plist) + for (const QTimeZonePrivate::Data &pdata : plist) list.append(d->toOffsetData(pdata)); } return list; diff --git a/src/corelib/tools/qtimezoneprivate_tz.cpp b/src/corelib/tools/qtimezoneprivate_tz.cpp index 4bb52a8d8a..3e71dc0fca 100644 --- a/src/corelib/tools/qtimezoneprivate_tz.cpp +++ b/src/corelib/tools/qtimezoneprivate_tz.cpp @@ -255,7 +255,7 @@ static QMap parseTzAbbreviations(QDataStream &ds, int tzh_charc return map; } // Then extract all the substrings pointed to by types - foreach (const QTzType &type, types) { + for (const QTzType &type : types) { QByteArray abbrev; for (int i = type.tz_abbrind; input.at(i) != '\0'; ++i) abbrev.append(input.at(i)); @@ -629,7 +629,7 @@ void QTzTimeZonePrivate::init(const QByteArray &ianaId) // Offsets are stored as total offset, want to know separate UTC and DST offsets // so find the first non-dst transition to use as base UTC Offset int utcOffset = 0; - foreach (const QTzTransition &tran, tranList) { + for (const QTzTransition &tran : qAsConst(tranList)) { if (!typeList.at(tran.tz_typeind).tz_isdst) { utcOffset = typeList.at(tran.tz_typeind).tz_gmtoff; break; @@ -638,7 +638,7 @@ void QTzTimeZonePrivate::init(const QByteArray &ianaId) // Now for each transition time calculate our rule and save them m_tranTimes.reserve(tranList.count()); - foreach (const QTzTransition &tz_tran, tranList) { + for (const QTzTransition &tz_tran : qAsConst(tranList)) { QTzTransitionTime tran; QTzTransitionRule rule; const QTzType tz_type = typeList.at(tz_tran.tz_typeind); @@ -790,7 +790,7 @@ int QTzTimeZonePrivate::daylightTimeOffset(qint64 atMSecsSinceEpoch) const bool QTzTimeZonePrivate::hasDaylightTime() const { // TODO Perhaps cache as frequently accessed? - foreach (const QTzTransitionRule &rule, m_tranRules) { + for (const QTzTransitionRule &rule : m_tranRules) { if (rule.dstOffset != 0) return true; } diff --git a/src/corelib/tools/qtimezoneprivate_win.cpp b/src/corelib/tools/qtimezoneprivate_win.cpp index 33476033ff..b5d45549ef 100644 --- a/src/corelib/tools/qtimezoneprivate_win.cpp +++ b/src/corelib/tools/qtimezoneprivate_win.cpp @@ -237,7 +237,8 @@ static QByteArray windowsSystemZoneId() TIME_ZONE_INFORMATION sysTzi; GetTimeZoneInformation(&sysTzi); bool ok = false; - foreach (const QByteArray &winId, availableWindowsIds()) { + const auto winIds = availableWindowsIds(); + for (const QByteArray &winId : winIds) { if (equalTzi(getRegistryTzi(winId, &ok), sysTzi)) return winId; } @@ -506,7 +507,7 @@ QTimeZonePrivate::Data QWinTimeZonePrivate::data(qint64 forMSecsSinceEpoch) cons bool QWinTimeZonePrivate::hasTransitions() const { - foreach (const QWinTransitionRule &rule, m_tranRules) { + for (const QWinTransitionRule &rule : m_tranRules) { if (rule.standardTimeRule.wMonth > 0 && rule.daylightTimeRule.wMonth > 0) return true; } @@ -637,9 +638,9 @@ QByteArray QWinTimeZonePrivate::systemTimeZoneId() const QList QWinTimeZonePrivate::availableTimeZoneIds() const { QList result; - foreach (const QByteArray &winId, availableWindowsIds()) { + const auto winIds = availableWindowsIds(); + for (const QByteArray &winId : winIds) result += windowsIdToIanaIds(winId); - } std::sort(result.begin(), result.end()); result.erase(std::unique(result.begin(), result.end()), result.end()); return result; -- cgit v1.2.3