From 3df01e970913a9d3007319519097c9e2c44478a3 Mon Sep 17 00:00:00 2001 From: Jake Petroules Date: Thu, 9 Mar 2017 14:48:39 -0800 Subject: Replace all uses of QVector with std::vector Change-Id: Idd41fc4d9819649a85739f984862bed6480fddd5 Reviewed-by: Joerg Bornemann --- src/app/qbs-setup-toolchains/msvcprobe.cpp | 47 +++++++++---------- src/lib/corelib/api/project.cpp | 5 +- .../corelib/buildgraph/inputartifactscanner.cpp | 2 +- src/lib/corelib/buildgraph/qtmocscanner.cpp | 2 +- src/lib/corelib/buildgraph/rawscanresults.cpp | 6 +-- src/lib/corelib/buildgraph/rawscanresults.h | 7 +-- src/lib/corelib/buildgraph/rulegraph.cpp | 20 ++++---- src/lib/corelib/buildgraph/rulegraph.h | 9 ++-- src/lib/corelib/buildgraph/rulesapplicator.cpp | 9 ++-- .../visualstudio/io/visualstudiosolutionwriter.cpp | 3 +- .../visualstudio/msbuildfiltersproject.cpp | 25 ++++------ .../solution/visualstudiosolutionglobalsection.cpp | 8 ++-- .../solution/visualstudiosolutionglobalsection.h | 2 +- .../visualstudio/visualstudiogenerator.cpp | 6 +-- .../visualstudio/visualstudiogenerator.h | 2 +- src/lib/corelib/language/language.cpp | 5 +- src/lib/corelib/language/language.h | 14 +++++- src/lib/corelib/language/moduleloader.cpp | 41 ++++++++-------- src/lib/corelib/language/moduleloader.h | 4 +- src/lib/corelib/language/modulemerger.cpp | 4 +- src/lib/corelib/language/projectresolver.cpp | 2 +- src/lib/corelib/language/tst_language.cpp | 4 +- src/lib/corelib/tools/id.cpp | 3 +- src/lib/corelib/tools/persistence.cpp | 2 +- src/lib/corelib/tools/persistence.h | 21 ++++----- src/lib/corelib/tools/projectgeneratormanager.cpp | 7 +-- src/lib/corelib/tools/set.h | 54 ++++++++++++++-------- src/lib/corelib/tools/shellutils.cpp | 6 +-- src/lib/corelib/tools/shellutils.h | 5 +- src/lib/corelib/tools/tst_tools.cpp | 15 ------ src/lib/corelib/tools/vsenvironmentdetector.cpp | 21 +++++---- src/lib/corelib/tools/vsenvironmentdetector.h | 8 ++-- tests/auto/api/tst_api.cpp | 12 ++--- 33 files changed, 194 insertions(+), 187 deletions(-) diff --git a/src/app/qbs-setup-toolchains/msvcprobe.cpp b/src/app/qbs-setup-toolchains/msvcprobe.cpp index 9618f0c39..760568527 100644 --- a/src/app/qbs-setup-toolchains/msvcprobe.cpp +++ b/src/app/qbs-setup-toolchains/msvcprobe.cpp @@ -56,7 +56,8 @@ #include #include #include -#include + +#include using namespace qbs; using namespace qbs::Internal; @@ -98,9 +99,9 @@ struct MSVCArchInfo QString binPath; }; -static QVector findSupportedArchitectures(const MSVC &msvc) +static std::vector findSupportedArchitectures(const MSVC &msvc) { - QVector result; + std::vector result; if (msvc.internalVsVersion.majorVersion() < 15) { static const QStringList knownArchitectures = QStringList() << QStringLiteral("x86") @@ -116,7 +117,7 @@ static QVector findSupportedArchitectures(const MSVC &msvc) ai.arch = knownArchitecture; ai.binPath = msvc.binPathForArchitecture(knownArchitecture); if (QFile::exists(ai.binPath + QLatin1String("/cl.exe"))) - result += ai; + result.push_back(ai); } } else { QDir vcInstallDir(msvc.vcInstallPath); @@ -132,7 +133,7 @@ static QVector findSupportedArchitectures(const MSVC &msvc) ai.arch = arch; else ai.arch = shortHostArch + QLatin1Char('_') + arch; - result += ai; + result.push_back(ai); } } } @@ -154,9 +155,9 @@ struct MSVCRegistryEntry QString installDir; }; -static QVector installedMSVCsFromRegistry() +static std::vector installedMSVCsFromRegistry() { - QVector result; + std::vector result; // Detect Visual Studio const QSettings vsRegistry( @@ -167,7 +168,7 @@ static QVector installedMSVCsFromRegistry() MSVCRegistryEntry entry; entry.version = vsName; entry.installDir = vsRegistry.value(vsName).toString(); - result.append(entry); + result.push_back(entry); } // Detect Visual C++ Build Tools @@ -189,7 +190,7 @@ static QVector installedMSVCsFromRegistry() + QStringLiteral("\\Setup\\VC"), QSettings::NativeFormat); entry.installDir = vsRegistry.value(QStringLiteral("ProductDir")).toString(); - result.append(entry); + result.push_back(entry); } vcbtRegistry.endGroup(); } @@ -197,10 +198,10 @@ static QVector installedMSVCsFromRegistry() return result; } -static QVector installedMSVCs() +static std::vector installedMSVCs() { - QVector msvcs; - const QVector ®istryEntries = installedMSVCsFromRegistry(); + std::vector msvcs; + const std::vector ®istryEntries = installedMSVCsFromRegistry(); for (const MSVCRegistryEntry ®istryEntry : registryEntries) { MSVC msvc; msvc.internalVsVersion = Version::fromString(registryEntry.version); @@ -226,7 +227,7 @@ static QVector installedMSVCs() if (!vcInstallDir.cd(QStringLiteral("bin"))) continue; msvc.vcInstallPath = vcInstallDir.absolutePath(); - msvcs.append(msvc); + msvcs.push_back(msvc); } else { QDir vcInstallDir = vsInstallDir; vcInstallDir.cd(QStringLiteral("Tools/MSVC")); @@ -241,7 +242,7 @@ static QVector installedMSVCs() continue; } msvc.vcInstallPath = specificVcInstallDir.absolutePath(); - msvcs.append(msvc); + msvcs.push_back(msvc); } } } @@ -253,7 +254,7 @@ void msvcProbe(Settings *settings, QList &profiles) qbsInfo() << Tr::tr("Detecting MSVC toolchains..."); // 1) Installed SDKs preferred over standalone Visual studio - QVector winSDKs; + std::vector winSDKs; WinSDK defaultWinSDK; const QSettings sdkRegistry(QLatin1String("HKEY_LOCAL_MACHINE\\SOFTWARE") + wow6432Key() @@ -276,7 +277,7 @@ void msvcProbe(Settings *settings, QList &profiles) WinSDK specificSDK = sdk; specificSDK.architecture = ai.arch; specificSDK.binPath = ai.binPath; - winSDKs += specificSDK; + winSDKs.push_back(specificSDK); } } } @@ -289,7 +290,7 @@ void msvcProbe(Settings *settings, QList &profiles) } // 2) Installed MSVCs - QVector msvcs; + std::vector msvcs; foreach (MSVC msvc, installedMSVCs()) { if (msvc.internalVsVersion.majorVersion() < 15) { // Check existence of various install scripts @@ -302,7 +303,7 @@ void msvcProbe(Settings *settings, QList &profiles) MSVC specificMSVC = msvc; specificMSVC.architecture = ai.arch; specificMSVC.binPath = ai.binPath; - msvcs += specificMSVC; + msvcs.push_back(specificMSVC); } } @@ -312,14 +313,14 @@ void msvcProbe(Settings *settings, QList &profiles) QDir::toNativeSeparators(msvc.binPath)); } - if (winSDKs.isEmpty() && msvcs.isEmpty()) { + if (winSDKs.empty() && msvcs.empty()) { qbsInfo() << Tr::tr("Could not detect an installation of " "the Windows SDK or Visual Studio."); return; } qbsInfo() << Tr::tr("Detecting build environment..."); - QVector msvcPtrs; + std::vector msvcPtrs; msvcPtrs.resize(winSDKs.size() + msvcs.size()); std::transform(winSDKs.begin(), winSDKs.end(), msvcPtrs.begin(), [] (WinSDK &sdk) -> MSVC * { return &sdk; }); @@ -329,8 +330,7 @@ void msvcProbe(Settings *settings, QList &profiles) VsEnvironmentDetector envDetector; envDetector.start(msvcPtrs); - for (int i = 0; i < winSDKs.count(); ++i) { - WinSDK &sdk = winSDKs[i]; + for (WinSDK &sdk : winSDKs) { const QString name = QLatin1String("WinSDK") + sdk.version + QLatin1Char('-') + sdk.architecture; try { @@ -341,8 +341,7 @@ void msvcProbe(Settings *settings, QList &profiles) } } - for (int i = 0; i < msvcs.count(); ++i) { - MSVC &msvc = msvcs[i]; + for (MSVC &msvc : msvcs) { const QString name = QLatin1String("MSVC") + msvc.version + QLatin1Char('-') + msvc.architecture; try { diff --git a/src/lib/corelib/api/project.cpp b/src/lib/corelib/api/project.cpp index 61ee8d57e..1508c34e9 100644 --- a/src/lib/corelib/api/project.cpp +++ b/src/lib/corelib/api/project.cpp @@ -651,9 +651,8 @@ void ProjectPrivate::updateInternalCodeLocations(const ResolvedProjectPtr &proje for (const RulePtr &rule : qAsConst(product->rules)) { updateLocationIfNecessary(rule->prepareScript->location, changeLocation, lineOffset); for (const RuleArtifactPtr &artifact : qAsConst(rule->artifacts)) { - for (int i = 0; i < artifact->bindings.count(); ++i) { - updateLocationIfNecessary(artifact->bindings[i].location, changeLocation, - lineOffset); + for (auto &binding : artifact->bindings) { + updateLocationIfNecessary(binding.location, changeLocation, lineOffset); } } } diff --git a/src/lib/corelib/buildgraph/inputartifactscanner.cpp b/src/lib/corelib/buildgraph/inputartifactscanner.cpp index 57bf9adfc..203edb0da 100644 --- a/src/lib/corelib/buildgraph/inputartifactscanner.cpp +++ b/src/lib/corelib/buildgraph/inputartifactscanner.cpp @@ -361,7 +361,7 @@ void InputArtifactScanner::scanWithScannerPlugin(DependencyScanner *scanner, const QStringList &dependencies = scanner->collectDependencies(fileToBeScanned, m_fileTagsForScanner.constData()); for (const QString &s : dependencies) - scanResult->deps += RawScannedDependency(s); + scanResult->deps.push_back(RawScannedDependency(s)); } InputArtifactScannerContext::DependencyScannerCacheItem::DependencyScannerCacheItem() : valid(false) diff --git a/src/lib/corelib/buildgraph/qtmocscanner.cpp b/src/lib/corelib/buildgraph/qtmocscanner.cpp index 5db9af58c..12ec66436 100644 --- a/src/lib/corelib/buildgraph/qtmocscanner.cpp +++ b/src/lib/corelib/buildgraph/qtmocscanner.cpp @@ -161,7 +161,7 @@ static RawScanResult runScanner(ScannerPlugin *scanner, const Artifact *artifact if (FileInfo::exists(localFilePath)) includedFilePath = localFilePath; } - scanData.rawScanResult.deps += RawScannedDependency(includedFilePath); + scanData.rawScanResult.deps.push_back(RawScannedDependency(includedFilePath)); } scanner->close(opaq); diff --git a/src/lib/corelib/buildgraph/rawscanresults.cpp b/src/lib/corelib/buildgraph/rawscanresults.cpp index a96574435..616adc964 100644 --- a/src/lib/corelib/buildgraph/rawscanresults.cpp +++ b/src/lib/corelib/buildgraph/rawscanresults.cpp @@ -83,7 +83,7 @@ RawScanResults::ScanData &RawScanResults::findScanData( const DependencyScanner *scanner, const PropertyMapConstPtr &moduleProperties) { - QVector &scanDataForFile = m_rawScanData[file->filePath()]; + std::vector &scanDataForFile = m_rawScanData[file->filePath()]; const QString &scannerId = scanner->id(); for (auto it = scanDataForFile.begin(); it != scanDataForFile.end(); ++it) { ScanData &scanData = *it; @@ -96,8 +96,8 @@ RawScanResults::ScanData &RawScanResults::findScanData( ScanData newScanData; newScanData.scannerId = scannerId; newScanData.moduleProperties = moduleProperties; - scanDataForFile.append(std::move(newScanData)); - return scanDataForFile.last(); + scanDataForFile.push_back(std::move(newScanData)); + return scanDataForFile.back(); } void RawScanResults::load(PersistentPool &pool) diff --git a/src/lib/corelib/buildgraph/rawscanresults.h b/src/lib/corelib/buildgraph/rawscanresults.h index ab7dceb2b..f58b5ceb5 100644 --- a/src/lib/corelib/buildgraph/rawscanresults.h +++ b/src/lib/corelib/buildgraph/rawscanresults.h @@ -48,7 +48,8 @@ #include #include -#include + +#include namespace qbs { namespace Internal { @@ -59,7 +60,7 @@ class PersistentPool; class RawScanResult { public: - QVector deps; + std::vector deps; FileTags additionalFileTags; void load(PersistentPool &pool); @@ -89,7 +90,7 @@ public: void store(PersistentPool &pool) const; private: - QHash> m_rawScanData; + QHash> m_rawScanData; }; } // namespace Internal diff --git a/src/lib/corelib/buildgraph/rulegraph.cpp b/src/lib/corelib/buildgraph/rulegraph.cpp index b3eeb8971..9388ff3a4 100644 --- a/src/lib/corelib/buildgraph/rulegraph.cpp +++ b/src/lib/corelib/buildgraph/rulegraph.cpp @@ -53,15 +53,15 @@ RuleGraph::RuleGraph() void RuleGraph::build(const Set &rules, const FileTags &productFileTags) { QMap > inputFileTagToRule; - m_rules.reserve(rules.count()); + m_rules.reserve(rules.size()); for (const RulePtr &rule : rules) { for (const FileTag &fileTag : rule->collectedOutputFileTags()) m_outputFileTagToRule[fileTag].append(rule.data()); insert(rule); } - m_parents.resize(rules.count()); - m_children.resize(rules.count()); + m_parents.resize(rules.size()); + m_children.resize(rules.size()); for (const RuleConstPtr &rule : qAsConst(m_rules)) { FileTags inFileTags = rule->inputs; @@ -101,7 +101,7 @@ void RuleGraph::dump() const printf("---rule graph dump:\n"); Set rootRules; for (const RuleConstPtr &rule : qAsConst(m_rules)) - if (m_parents[rule->ruleGraphId].isEmpty()) + if (m_parents[rule->ruleGraphId].empty()) rootRules += rule->ruleGraphId; for (int idx : qAsConst(rootRules)) dump_impl(indent, idx); @@ -122,21 +122,21 @@ void RuleGraph::dump_impl(QByteArray &indent, int rootIndex) const int RuleGraph::insert(const RulePtr &rule) { - rule->ruleGraphId = m_rules.count(); - m_rules.append(rule); + rule->ruleGraphId = m_rules.size(); + m_rules.push_back(rule); return rule->ruleGraphId; } void RuleGraph::connect(const Rule *creatingRule, const Rule *consumingRule) { - int maxIndex = qMax(creatingRule->ruleGraphId, consumingRule->ruleGraphId); - if (m_parents.count() <= maxIndex) { + int maxIndex = std::max(creatingRule->ruleGraphId, consumingRule->ruleGraphId); + if (static_cast(m_parents.size()) <= maxIndex) { const int c = maxIndex + 1; m_parents.resize(c); m_children.resize(c); } - m_parents[consumingRule->ruleGraphId].append(creatingRule->ruleGraphId); - m_children[creatingRule->ruleGraphId].append(consumingRule->ruleGraphId); + m_parents[consumingRule->ruleGraphId].push_back(creatingRule->ruleGraphId); + m_children[creatingRule->ruleGraphId].push_back(consumingRule->ruleGraphId); } void RuleGraph::traverse(RuleGraphVisitor *visitor, const RuleConstPtr &parentRule, diff --git a/src/lib/corelib/buildgraph/rulegraph.h b/src/lib/corelib/buildgraph/rulegraph.h index 074e7034d..7338ae746 100644 --- a/src/lib/corelib/buildgraph/rulegraph.h +++ b/src/lib/corelib/buildgraph/rulegraph.h @@ -47,7 +47,8 @@ #include #include #include -#include + +#include namespace qbs { namespace Internal { @@ -78,9 +79,9 @@ private: private: QMap > m_outputFileTagToRule; - QVector m_rules; - QVector< QVector > m_parents; - QVector< QVector > m_children; + std::vector m_rules; + std::vector< std::vector > m_parents; + std::vector< std::vector > m_children; Set m_rootRules; }; diff --git a/src/lib/corelib/buildgraph/rulesapplicator.cpp b/src/lib/corelib/buildgraph/rulesapplicator.cpp index af1af3900..1aaf38fa0 100644 --- a/src/lib/corelib/buildgraph/rulesapplicator.cpp +++ b/src/lib/corelib/buildgraph/rulesapplicator.cpp @@ -222,7 +222,7 @@ void RulesApplicator::doApply(const ArtifactSet &inputArtifacts, QScriptValue &p engine()->setGlobalObject(prepareScriptContext); for (int i = ruleArtifactArtifactMap.count(); --i >= 0;) { const RuleArtifact *ra = ruleArtifactArtifactMap.at(i).first; - if (ra->bindings.isEmpty()) + if (ra->bindings.empty()) continue; // expose attributes of this artifact @@ -236,8 +236,7 @@ void RulesApplicator::doApply(const ArtifactSet &inputArtifacts, QScriptValue &p QVariantMap artifactModulesCfg = outputArtifact->properties->value() .value(QLatin1String("modules")).toMap(); - for (int i=0; i < ra->bindings.count(); ++i) { - const RuleArtifact::Binding &binding = ra->bindings.at(i); + for (const auto &binding : ra->bindings) { scriptValue = engine()->evaluate(binding.code); if (Q_UNLIKELY(engine()->hasErrorOrException(scriptValue))) { QString msg = QLatin1String("evaluating rule binding '%1': %2"); @@ -332,8 +331,8 @@ Artifact *RulesApplicator::createOutputArtifact(const QString &filePath, const F throw ErrorInfo(e); } if (transformer && !m_rule->multiplex && transformer->inputs != inputArtifacts) { - QBS_CHECK(inputArtifacts.count() == 1); - QBS_CHECK(transformer->inputs.count() == 1); + QBS_CHECK(inputArtifacts.size() == 1); + QBS_CHECK(transformer->inputs.size() == 1); ErrorInfo error(Tr::tr("Conflicting instances of rule '%1':").arg(m_rule->toString()), m_rule->prepareScript->location); error.append(Tr::tr("Output artifact '%1' is to be produced from input " diff --git a/src/lib/corelib/generators/visualstudio/io/visualstudiosolutionwriter.cpp b/src/lib/corelib/generators/visualstudio/io/visualstudiosolutionwriter.cpp index 0621fe97c..99180e2e2 100644 --- a/src/lib/corelib/generators/visualstudio/io/visualstudiosolutionwriter.cpp +++ b/src/lib/corelib/generators/visualstudio/io/visualstudiosolutionwriter.cpp @@ -44,7 +44,8 @@ #include #include #include -#include + +#include namespace qbs { diff --git a/src/lib/corelib/generators/visualstudio/msbuildfiltersproject.cpp b/src/lib/corelib/generators/visualstudio/msbuildfiltersproject.cpp index c1a60e919..45a09236a 100644 --- a/src/lib/corelib/generators/visualstudio/msbuildfiltersproject.cpp +++ b/src/lib/corelib/generators/visualstudio/msbuildfiltersproject.cpp @@ -40,7 +40,8 @@ #include #include -#include + +#include namespace qbs { @@ -72,12 +73,10 @@ static QStringList headerFileExtensions() << QStringLiteral("h++"); } -static QVector defaultItemGroupFilters(IMSBuildItemGroup *parent = 0) +static std::vector defaultItemGroupFilters(IMSBuildItemGroup *parent = 0) { - const auto filters = QVector { - new MSBuildFilter(QStringLiteral("Source Files"), sourceFileExtensions(), parent), - new MSBuildFilter(QStringLiteral("Header Files"), headerFileExtensions(), parent) - }; + const auto sourceFilter = new MSBuildFilter(QStringLiteral("Source Files"), sourceFileExtensions(), parent); + const auto headerFilter = new MSBuildFilter(QStringLiteral("Header Files"), headerFileExtensions(), parent); const auto formFilter = new MSBuildFilter(QStringLiteral("Form Files"), QStringList() << QStringLiteral("ui"), parent); @@ -94,12 +93,9 @@ static QVector defaultItemGroupFilters(IMSBuildItemGroup *paren QStringList() << QStringLiteral("ts"), parent); translationFilter->setParseFiles(false); - return QVector() - << filters - << formFilter - << resourceFilter - << generatedFilter - << translationFilter; + return std::vector { + sourceFilter, headerFilter, formFilter, resourceFilter, generatedFilter, translationFilter + }; } static bool matchesFilter(const MSBuildFilter *filter, const QString &filePath) @@ -132,14 +128,11 @@ MSBuildFiltersProject::MSBuildFiltersProject(const GeneratableProductData &produ allFiles.unite(Internal::Set::fromList(groupData.allFilePaths())); } - auto allFilesSorted = allFiles.toList(); - std::sort(allFilesSorted.begin(), allFilesSorted.end()); - MSBuildItemGroup *headerFilesGroup = nullptr; MSBuildItemGroup *sourceFilesGroup = nullptr; MSBuildItemGroup *filesGroup = nullptr; - for (const auto &filePath : allFilesSorted) { + for (const auto &filePath : allFiles) { MSBuildFileItem *fileItem = nullptr; for (const MSBuildFilter *options : filterOptions) { diff --git a/src/lib/corelib/generators/visualstudio/solution/visualstudiosolutionglobalsection.cpp b/src/lib/corelib/generators/visualstudio/solution/visualstudiosolutionglobalsection.cpp index 36574040e..1e4f5fd01 100644 --- a/src/lib/corelib/generators/visualstudio/solution/visualstudiosolutionglobalsection.cpp +++ b/src/lib/corelib/generators/visualstudio/solution/visualstudiosolutionglobalsection.cpp @@ -29,9 +29,9 @@ ****************************************************************************/ #include "visualstudiosolutionglobalsection.h" -#include #include +#include namespace qbs { @@ -39,7 +39,7 @@ class VisualStudioSolutionGlobalSectionPrivate { public: QString name; - QVector> properties; + std::vector> properties; bool post = false; }; @@ -75,14 +75,14 @@ void VisualStudioSolutionGlobalSection::setPost(bool post) d->post = post; } -QVector > VisualStudioSolutionGlobalSection::properties() const +std::vector > VisualStudioSolutionGlobalSection::properties() const { return d->properties; } void VisualStudioSolutionGlobalSection::appendProperty(const QString &key, const QString &value) { - d->properties.append({ key, value }); + d->properties.push_back({ key, value }); } } // namespace qbs diff --git a/src/lib/corelib/generators/visualstudio/solution/visualstudiosolutionglobalsection.h b/src/lib/corelib/generators/visualstudio/solution/visualstudiosolutionglobalsection.h index e4d3d7176..dd821fce0 100644 --- a/src/lib/corelib/generators/visualstudio/solution/visualstudiosolutionglobalsection.h +++ b/src/lib/corelib/generators/visualstudio/solution/visualstudiosolutionglobalsection.h @@ -52,7 +52,7 @@ public: bool isPost() const; void setPost(bool post); - QVector > properties() const; + std::vector > properties() const; void appendProperty(const QString &key, const QString &value); private: diff --git a/src/lib/corelib/generators/visualstudio/visualstudiogenerator.cpp b/src/lib/corelib/generators/visualstudio/visualstudiogenerator.cpp index cb3698e92..ea621b271 100644 --- a/src/lib/corelib/generators/visualstudio/visualstudiogenerator.cpp +++ b/src/lib/corelib/generators/visualstudio/visualstudiogenerator.cpp @@ -292,12 +292,12 @@ void VisualStudioGenerator::generate() d->reset(); } -QVector > VisualStudioGenerator::createGeneratorList() +std::vector > VisualStudioGenerator::createGeneratorList() { - QVector > result; + std::vector > result; for (const auto &info : VisualStudioVersionInfo::knownVersions()) { if (info.usesMsBuild()) - result << QSharedPointer(new VisualStudioGenerator(info)); + result.push_back(QSharedPointer(new VisualStudioGenerator(info))); } return result; } diff --git a/src/lib/corelib/generators/visualstudio/visualstudiogenerator.h b/src/lib/corelib/generators/visualstudio/visualstudiogenerator.h index 43c6709a7..b8e9ad2ae 100644 --- a/src/lib/corelib/generators/visualstudio/visualstudiogenerator.h +++ b/src/lib/corelib/generators/visualstudio/visualstudiogenerator.h @@ -61,7 +61,7 @@ public: QString generatorName() const override; void generate() override; - static QVector > createGeneratorList(); + static std::vector > createGeneratorList(); private: virtual void visitProject(const GeneratableProject &project) override; diff --git a/src/lib/corelib/language/language.cpp b/src/lib/corelib/language/language.cpp index 60b5f06ac..177427fcf 100644 --- a/src/lib/corelib/language/language.cpp +++ b/src/lib/corelib/language/language.cpp @@ -1088,7 +1088,7 @@ void SourceWildCards::expandPatterns(Set &result, const GroupConstPtr & if (baseDir.startsWith(buildDir)) return; - dirTimeStamps << std::make_pair(baseDir, FileInfo(baseDir).lastModified()); + dirTimeStamps.push_back({ baseDir, FileInfo(baseDir).lastModified() }); QStringList changed_parts = parts; bool recursive = false; @@ -1223,7 +1223,8 @@ bool operator==(const RuleArtifact &a1, const RuleArtifact &a2) return a1.filePath == a2.filePath && a1.fileTags == a2.fileTags && a1.alwaysUpdated == a2.alwaysUpdated - && a1.bindings.toList().toSet() == a2.bindings.toList().toSet(); + && Set::fromStdVector(a1.bindings) == + Set::fromStdVector(a2.bindings); } bool operator==(const RuleArtifact::Binding &b1, const RuleArtifact::Binding &b2) diff --git a/src/lib/corelib/language/language.h b/src/lib/corelib/language/language.h index 5425b68e0..2943996c8 100644 --- a/src/lib/corelib/language/language.h +++ b/src/lib/corelib/language/language.h @@ -166,9 +166,19 @@ public: void store(PersistentPool &pool) const; void load(PersistentPool &pool); + + bool operator<(const Binding &other) const + { + if (name == other.name) { + if (code == other.code) + return location < other.location; + return code < other.code; + } + return name < other.name; + } }; - QVector bindings; + std::vector bindings; private: RuleArtifact() @@ -226,7 +236,7 @@ public: QStringList patterns; QStringList excludePatterns; - QVector> dirTimeStamps; + std::vector> dirTimeStamps; QList files; private: diff --git a/src/lib/corelib/language/moduleloader.cpp b/src/lib/corelib/language/moduleloader.cpp index fa4a3e25f..1ec32338e 100644 --- a/src/lib/corelib/language/moduleloader.cpp +++ b/src/lib/corelib/language/moduleloader.cpp @@ -125,10 +125,9 @@ public: QHash productsMap; QList allProducts; for (ProjectContext * const projectContext : qAsConst(m_tlp.projects)) { - QVector &products = projectContext->products; - for (auto prodIt = products.begin(); prodIt != products.end(); ++prodIt) { - allProducts << prodIt; - productsMap.insert(prodIt->name, prodIt); + for (auto &product : projectContext->products) { + allProducts.push_back(&product); + productsMap.insert(product.name, &product); } } Set allDependencies; @@ -140,7 +139,7 @@ public: QBS_CHECK(!dep.name.isEmpty()); ProductContext * const depProduct = productsMap.value(dep.name); QBS_CHECK(depProduct); - productDependencies << depProduct; + productDependencies.push_back(depProduct); allDependencies << depProduct; } } @@ -190,7 +189,7 @@ private: } TopLevelProjectContext &m_tlp; - QHash> m_dependencyMap; + QHash> m_dependencyMap; Set m_seenProducts; QList m_sortedProducts; }; @@ -508,7 +507,7 @@ void ModuleLoader::handleProject(ModuleLoaderResult *loadResult, delete p; return; } - topLevelProjectContext->projects << &projectContext; + topLevelProjectContext->projects.push_back(&projectContext); m_reader->pushExtraSearchPaths(readExtraSearchPaths(projectItem) << projectItem->file()->dirPath()); projectContext.searchPathsStack = m_reader->extraSearchPathsStack(); @@ -692,7 +691,7 @@ void ModuleLoader::prepareProduct(ProjectContext *projectContext, Item *productI setScopeForDescendants(productItem, productContext.scope); - projectContext->products << productContext; + projectContext->products.push_back(productContext); } void ModuleLoader::setupProductDependencies(ProductContext *productContext) @@ -727,7 +726,7 @@ static void createSortedModuleList(const Item::Module &parentModule, Item::Modul return; for (const Item::Module &dep : parentModule.item->modules()) createSortedModuleList(dep, modules); - modules << parentModule; + modules.push_back(parentModule); return; } @@ -1132,12 +1131,12 @@ void ModuleLoader::printProfilingInfo() void ModuleLoader::mergeExportItems(const ProductContext &productContext) { - QVector exportItems; + std::vector exportItems; QList children = productContext.item->children(); for (int i = 0; i < children.count();) { Item * const child = children.at(i); if (child->type() == ItemType::Export) { - exportItems << child; + exportItems.push_back(child); children.removeAt(i); } else { ++i; @@ -1147,7 +1146,7 @@ void ModuleLoader::mergeExportItems(const ProductContext &productContext) // Note that we do not return if there are no Export items: The "merged" item becomes the // "product module", which always needs to exist, regardless of whether the product sources // actually contain an Export item or not. - if (!exportItems.isEmpty()) + if (!exportItems.empty()) productContext.item->setChildren(children); Item *merged = Item::create(productContext.item->pool(), ItemType::Export); @@ -1178,10 +1177,10 @@ void ModuleLoader::mergeExportItems(const ProductContext &productContext) mergeProperty(merged, it.key(), it.value()); } } - merged->setFile(exportItems.isEmpty() - ? productContext.item->file() : exportItems.last()->file()); - merged->setLocation(exportItems.isEmpty() - ? productContext.item->location() : exportItems.last()->location()); + merged->setFile(exportItems.empty() + ? productContext.item->file() : exportItems.back()->file()); + merged->setLocation(exportItems.empty() + ? productContext.item->location() : exportItems.back()->location()); Item::addChild(productContext.item, merged); merged->setupForBuiltinType(m_logger); ProductModuleInfo &pmi @@ -2428,7 +2427,7 @@ void ModuleLoader::overrideItemProperties(Item *item, const QString &buildConfig } } -static void collectAllModules(Item *item, QVector *modules) +static void collectAllModules(Item *item, std::vector *modules) { for (const Item::Module &m : item->modules()) { auto it = std::find_if(modules->begin(), modules->end(), @@ -2440,14 +2439,14 @@ static void collectAllModules(Item *item, QVector *modules) it->versionRange.narrowDown(m.versionRange); continue; } - modules->append(m); + modules->push_back(m); collectAllModules(m.item, modules); } } -static QVector allModules(Item *item) +static std::vector allModules(Item *item) { - QVector lst; + std::vector lst; collectAllModules(item, &lst); return lst; } @@ -2456,7 +2455,7 @@ void ModuleLoader::addTransitiveDependencies(ProductContext *ctx) { if (m_logger.traceEnabled()) m_logger.qbsTrace() << "[MODLDR] addTransitiveDependencies"; - QVector transitiveDeps = allModules(ctx->item); + std::vector transitiveDeps = allModules(ctx->item); std::sort(transitiveDeps.begin(), transitiveDeps.end()); for (const Item::Module &m : ctx->item->modules()) { if (m.isProduct) { diff --git a/src/lib/corelib/language/moduleloader.h b/src/lib/corelib/language/moduleloader.h index fb1fbb48a..1359b454e 100644 --- a/src/lib/corelib/language/moduleloader.h +++ b/src/lib/corelib/language/moduleloader.h @@ -165,7 +165,7 @@ private: public: TopLevelProjectContext *topLevelProject; ModuleLoaderResult *result; - QVector products; + std::vector products; QStack searchPathsStack; }; @@ -184,7 +184,7 @@ private: TopLevelProjectContext() {} ~TopLevelProjectContext() { qDeleteAll(projects); } - QVector projects; + std::vector projects; QHash productModules; QList probes; QString buildDirectory; diff --git a/src/lib/corelib/language/modulemerger.cpp b/src/lib/corelib/language/modulemerger.cpp index c161aea10..578c0dc12 100644 --- a/src/lib/corelib/language/modulemerger.cpp +++ b/src/lib/corelib/language/modulemerger.cpp @@ -164,11 +164,11 @@ Item::PropertyMap ModuleMerger::dfs(const Item::Module &m, Item::PropertyMap pro outprops.reserve(numberOfOutprops); for (const Item::Module &dep : m.item->modules()) { if (dep.item != moduleInstance) - outprops << dfs(dep, props); + outprops.push_back(dfs(dep, props)); } if (!outprops.empty()) { - props = outprops.at(0); + props = outprops.front(); for (size_t i = 1; i < outprops.size(); ++i) mergeOutProps(&props, outprops.at(i)); } diff --git a/src/lib/corelib/language/projectresolver.cpp b/src/lib/corelib/language/projectresolver.cpp index dfee668df..5265c6d2e 100644 --- a/src/lib/corelib/language/projectresolver.cpp +++ b/src/lib/corelib/language/projectresolver.cpp @@ -893,7 +893,7 @@ void ProjectResolver::resolveRuleArtifactBinding(const RuleArtifactPtr &ruleArti rab.name = name; rab.code = sourceCodeForEvaluation(sourceValue); rab.location = sourceValue->location(); - ruleArtifact->bindings += rab; + ruleArtifact->bindings.push_back(rab); } else { QBS_ASSERT(!"unexpected value type", continue); } diff --git a/src/lib/corelib/language/tst_language.cpp b/src/lib/corelib/language/tst_language.cpp index f004e4992..151457872 100644 --- a/src/lib/corelib/language/tst_language.cpp +++ b/src/lib/corelib/language/tst_language.cpp @@ -63,9 +63,9 @@ #include #include -#include #include +#include Q_DECLARE_METATYPE(QList) @@ -1534,7 +1534,7 @@ void TestLanguage::nonRequiredProducts() .toStringList(); QCOMPARE(subProjectEnabled && dependeeEnabled, defines.contains("WITH_DEPENDEE")); - for (const auto &name : QVector({ "p3", "p2", "p1"})) { + for (const auto &name : std::vector({ "p3", "p2", "p1"})) { const ResolvedProductConstPtr &product = products.value(name); QVERIFY2(product, name); QVERIFY2(!product->enabled, name); diff --git a/src/lib/corelib/tools/id.cpp b/src/lib/corelib/tools/id.cpp index 2c28f53e5..e2e0cf5f5 100644 --- a/src/lib/corelib/tools/id.cpp +++ b/src/lib/corelib/tools/id.cpp @@ -42,7 +42,8 @@ #include #include -#include + +#include namespace qbs { namespace Internal { diff --git a/src/lib/corelib/tools/persistence.cpp b/src/lib/corelib/tools/persistence.cpp index 8330dfe13..0d7b1a3a8 100644 --- a/src/lib/corelib/tools/persistence.cpp +++ b/src/lib/corelib/tools/persistence.cpp @@ -239,7 +239,7 @@ QString PersistentPool::loadString(int id) QBS_CHECK(id >= 0); - if (id >= m_stringStorage.count()) { + if (id >= static_cast(m_stringStorage.size())) { QString s; m_stream >> s; m_stringStorage.resize(id + 1); diff --git a/src/lib/corelib/tools/persistence.h b/src/lib/corelib/tools/persistence.h index 3fade2d29..8efd5431d 100644 --- a/src/lib/corelib/tools/persistence.h +++ b/src/lib/corelib/tools/persistence.h @@ -49,9 +49,9 @@ #include #include #include -#include #include +#include namespace qbs { namespace Internal { @@ -112,12 +112,12 @@ private: QDataStream m_stream; HeadData m_headData; - QVector m_loadedRaw; - QVector > m_loaded; + std::vector m_loadedRaw; + std::vector > m_loaded; QHash m_storageIndices; PersistentObjectId m_lastStoredObjectId; - QVector m_stringStorage; + std::vector m_stringStorage; QHash m_inverseStringStorage; PersistentObjectId m_lastStoredStringId; Logger &m_logger; @@ -131,14 +131,14 @@ template inline T *PersistentPool::idLoad() if (id < 0) return 0; - if (id < m_loadedRaw.count()) { - PersistentObject *obj = m_loadedRaw.value(id); + if (id < static_cast(m_loadedRaw.size())) { + PersistentObject *obj = m_loadedRaw.at(id); return dynamic_cast(obj); } - int i = m_loadedRaw.count(); + auto i = m_loadedRaw.size(); m_loadedRaw.resize(id + 1); - for (; i < m_loadedRaw.count(); ++i) + for (; i < m_loadedRaw.size(); ++i) m_loadedRaw[i] = 0; T * const t = new T; @@ -156,8 +156,8 @@ template inline QSharedPointer PersistentPool::idLoadS() if (id < 0) return QSharedPointer(); - if (id < m_loaded.count()) { - QSharedPointer obj = m_loaded.value(id); + if (id < static_cast(m_loaded.size())) { + QSharedPointer obj = m_loaded.at(id); return obj.dynamicCast(); } @@ -281,7 +281,6 @@ template struct PersistentPool::Helper> template struct IsSimpleContainer { static const bool value = false; }; template<> struct IsSimpleContainer { static const bool value = true; }; -template struct IsSimpleContainer> { static const bool value = true; }; template struct IsSimpleContainer> { static const bool value = true; }; template struct IsSimpleContainer> { static const bool value = true; }; diff --git a/src/lib/corelib/tools/projectgeneratormanager.cpp b/src/lib/corelib/tools/projectgeneratormanager.cpp index d59fa1bd5..a417be5e2 100644 --- a/src/lib/corelib/tools/projectgeneratormanager.cpp +++ b/src/lib/corelib/tools/projectgeneratormanager.cpp @@ -72,9 +72,10 @@ ProjectGeneratorManager *ProjectGeneratorManager::instance() ProjectGeneratorManager::ProjectGeneratorManager() { - QVector > generators; - generators << QSharedPointer::create(); - generators << qbs::VisualStudioGenerator::createGeneratorList(); + std::vector > generators; + generators.push_back(QSharedPointer::create()); + const auto vsGenerators = qbs::VisualStudioGenerator::createGeneratorList(); + std::copy(vsGenerators.cbegin(), vsGenerators.cend(), std::back_inserter(generators)); for (QSharedPointer generator : qAsConst(generators)) m_generators[generator->generatorName()] = generator; } diff --git a/src/lib/corelib/tools/set.h b/src/lib/corelib/tools/set.h index f299ec71e..2229ebd4b 100644 --- a/src/lib/corelib/tools/set.h +++ b/src/lib/corelib/tools/set.h @@ -68,17 +68,17 @@ template struct SortAfterLoad> { static const bool template class Set { public: - using const_iterator = typename QVector::const_iterator; - using iterator = typename QVector::iterator; - using reverse_iterator = typename QVector::reverse_iterator; - using const_reverse_iterator = typename QVector::const_reverse_iterator; - using size_type = typename QVector::size_type; + using const_iterator = typename std::vector::const_iterator; + using iterator = typename std::vector::iterator; + using reverse_iterator = typename std::vector::reverse_iterator; + using const_reverse_iterator = typename std::vector::const_reverse_iterator; + using size_type = typename std::vector::size_type; using value_type = T; - using difference_type = typename QVector::difference_type; - using pointer = typename QVector::pointer; - using const_pointer = typename QVector::const_pointer; - using reference = typename QVector::reference; - using const_reference = typename QVector::const_reference; + using difference_type = typename std::vector::difference_type; + using pointer = typename std::vector::pointer; + using const_pointer = typename std::vector::const_pointer; + using reference = typename std::vector::reference; + using const_reference = typename std::vector::const_reference; iterator begin() { return m_data.begin(); } iterator end() { return m_data.end(); } @@ -119,7 +119,7 @@ public: bool contains(const T &v) const { return std::binary_search(cbegin(), cend(), v); } bool contains(const Set &other) const; bool isEmpty() const { return m_data.empty(); } - int count() const { return m_data.count(); } + int count() const { return m_data.size(); } int size() const { return count(); } int capacity() const { return m_data.capacity(); } bool intersects(const Set &other) const; @@ -140,9 +140,10 @@ public: QString toString(const T& value) const { return value.toString(); } QString toString() const; + static Set fromStdVector(const std::vector &vector); static Set fromList(const QList &list); static Set fromStdSet(const std::set &set); - QList toList() const { return m_data.toList(); } + QList toList() const; std::set toStdSet() const; template static Set filtered(const Set &s); @@ -160,7 +161,7 @@ private: bool sortAfterLoadRequired() const { return helper::SortAfterLoad::required; } iterator asMutableIterator(const_iterator cit); - QVector m_data; + std::vector m_data; }; template Set::Set(const std::initializer_list &list) : m_data(list) @@ -239,7 +240,7 @@ template Set &Set::unite(const Set &other) for (auto otherIt = other.cbegin(); otherIt != other.cend(); ++otherIt) { lowerBound = std::lower_bound(lowerBound, m_data.end(), *otherIt); if (lowerBound == m_data.end()) { - m_data.reserve(count() + std::distance(otherIt, other.cend())); + m_data.reserve(size() + std::distance(otherIt, other.cend())); std::copy(otherIt, other.cend(), std::back_inserter(m_data)); return *this; } @@ -265,7 +266,7 @@ template void Set::load(PersistentPool &pool) int i = pool.load(); reserve(i); for (; --i >= 0;) - m_data << loadElem(pool); + m_data.push_back(loadElem(pool)); if (sortAfterLoadRequired()) sort(); } @@ -294,10 +295,18 @@ template QString Set::toString() const return QLatin1Char('[') + toStringList().join(QLatin1String(", ")) + QLatin1Char(']'); } +template Set Set::fromStdVector(const std::vector &vector) +{ + Set s; + std::copy(vector.cbegin(), vector.cend(), std::back_inserter(s.m_data)); + s.sort(); + return s; +} + template Set Set::fromList(const QList &list) { Set s; - s.m_data = QVector::fromList(list); + std::copy(list.cbegin(), list.cend(), std::back_inserter(s.m_data)); s.sort(); return s; } @@ -309,6 +318,13 @@ template Set Set::fromStdSet(const std::set &set) return s; } +template QList Set::toList() const +{ + QList list; + std::copy(m_data.cbegin(), m_data.cend(), std::back_inserter(list)); + return list; +} + template std::set Set::toStdSet() const { std::set set; @@ -332,7 +348,7 @@ template template Set Set::filtered(const Set & for (auto &u : s) { T t = dynamic_cast(u); if (t) - filteredSet.m_data << t; + filteredSet.m_data.push_back(t); } return filteredSet; } @@ -376,7 +392,7 @@ template Set operator-(const Set &set1, const Set &set2) break; } if (*it1 < *it2) { - result.m_data << *it1++; + result.m_data.push_back(*it1++); } else if (*it2 < *it1) { ++it2; } else { @@ -401,7 +417,7 @@ template Set operator&(const Set &set1, const Set &set2) ++it2; continue; } - result.m_data << *it1; + result.m_data.push_back(*it1); ++it1; ++it2; } diff --git a/src/lib/corelib/tools/shellutils.cpp b/src/lib/corelib/tools/shellutils.cpp index 3eea8724d..f41f3e11a 100644 --- a/src/lib/corelib/tools/shellutils.cpp +++ b/src/lib/corelib/tools/shellutils.cpp @@ -179,7 +179,7 @@ void CommandLine::setProgram(const QString &program, bool raw) void CommandLine::appendArgument(const QString &value) { - m_arguments.append(value); + m_arguments.push_back(value); } void CommandLine::appendArguments(const QList &args) @@ -192,14 +192,14 @@ void CommandLine::appendRawArgument(const QString &value) { Argument arg(value); arg.shouldQuote = false; - m_arguments.append(arg); + m_arguments.push_back(arg); } void CommandLine::appendPathArgument(const QString &value) { Argument arg(value); arg.isFilePath = true; - m_arguments.append(arg); + m_arguments.push_back(arg); } void CommandLine::clearArguments() diff --git a/src/lib/corelib/tools/shellutils.h b/src/lib/corelib/tools/shellutils.h index 9d840db2d..5d748152b 100644 --- a/src/lib/corelib/tools/shellutils.h +++ b/src/lib/corelib/tools/shellutils.h @@ -44,7 +44,8 @@ #include "qbs_export.h" #include "hostosinfo.h" #include -#include + +#include namespace qbs { namespace Internal { @@ -78,7 +79,7 @@ private: bool m_isRawProgram; QString m_program; - QVector m_arguments; + std::vector m_arguments; }; } // namespace Internal diff --git a/src/lib/corelib/tools/tst_tools.cpp b/src/lib/corelib/tools/tst_tools.cpp index 13cfa7700..60bb02b24 100644 --- a/src/lib/corelib/tools/tst_tools.cpp +++ b/src/lib/corelib/tools/tst_tools.cpp @@ -426,8 +426,6 @@ void TestTools::set_capacity() void TestTools::set_reserve() { Set set; - int n = set.capacity(); - QVERIFY(n == 0); set.reserve(1000); QVERIFY(set.capacity() >= 1000); @@ -441,13 +439,6 @@ void TestTools::set_reserve() set.remove(j); QVERIFY(set.capacity() >= 1000); - - set.clear(); -#if (QT_VERSION >= QT_VERSION_CHECK(5, 7, 0)) - QVERIFY(set.capacity() >= 1000); // qtbase/a7885c9756d423042bd0670d82d78d8dffe9be54 -#else - QVERIFY(set.capacity() == 0); -#endif } void TestTools::set_clear() @@ -582,8 +573,6 @@ void TestTools::set_begin() QVERIFY(i == j); QVERIFY(k == ell); - QVERIFY(i == k); - QVERIFY(j == ell); } } @@ -600,8 +589,6 @@ void TestTools::set_end() QVERIFY(i == j); QVERIFY(k == ell); - QVERIFY(i == k); - QVERIFY(j == ell); QVERIFY(set1.constBegin() == set1.constEnd()); QVERIFY(set2.constBegin() == set2.constEnd()); @@ -634,8 +621,6 @@ void TestTools::set_end() QVERIFY(i == j); QVERIFY(k == ell); - QVERIFY(i == k); - QVERIFY(j == ell); QVERIFY(set1.constBegin() != set1.constEnd()); QVERIFY(set2.constBegin() != set2.constEnd()); diff --git a/src/lib/corelib/tools/vsenvironmentdetector.cpp b/src/lib/corelib/tools/vsenvironmentdetector.cpp index 92213527a..876d5fa65 100644 --- a/src/lib/corelib/tools/vsenvironmentdetector.cpp +++ b/src/lib/corelib/tools/vsenvironmentdetector.cpp @@ -74,26 +74,26 @@ VsEnvironmentDetector::VsEnvironmentDetector() bool VsEnvironmentDetector::start(MSVC *msvc) { - return start(QVector() << msvc); + return start(std::vector{ msvc }); } -bool VsEnvironmentDetector::start(QVector msvcs) +bool VsEnvironmentDetector::start(std::vector msvcs) { std::sort(msvcs.begin(), msvcs.end(), [] (const MSVC *a, const MSVC *b) -> bool { return a->vcInstallPath < b->vcInstallPath; }); - QVector compatibleMSVCs; + std::vector compatibleMSVCs; QString lastVcInstallPath; for (MSVC * const msvc : qAsConst(msvcs)) { if (lastVcInstallPath != msvc->vcInstallPath) { lastVcInstallPath = msvc->vcInstallPath; - if (!compatibleMSVCs.isEmpty()) { + if (!compatibleMSVCs.empty()) { startDetection(compatibleMSVCs); compatibleMSVCs.clear(); } } - compatibleMSVCs.append(msvc); + compatibleMSVCs.push_back(msvc); } startDetection(compatibleMSVCs); return true; @@ -122,9 +122,9 @@ QString VsEnvironmentDetector::findVcVarsAllBat(const MSVC &msvc) const return QString(); } -bool VsEnvironmentDetector::startDetection(const QVector &compatibleMSVCs) +bool VsEnvironmentDetector::startDetection(const std::vector &compatibleMSVCs) { - const QString vcvarsallbat = findVcVarsAllBat(*compatibleMSVCs.first()); + const QString vcvarsallbat = findVcVarsAllBat(**compatibleMSVCs.begin()); if (vcvarsallbat.isEmpty()) { m_errorString = Tr::tr("Cannot find 'vcvarsall.bat'."); return false; @@ -194,7 +194,7 @@ static QString vcArchitecture(const MSVC *msvc) } void VsEnvironmentDetector::writeBatchFile(QIODevice *device, const QString &vcvarsallbat, - const QVector &msvcs) const + const std::vector &msvcs) const { const QStringList varnames = QStringList() << QLatin1String("PATH") << QLatin1String("INCLUDE") << QLatin1String("LIB"); @@ -212,7 +212,7 @@ void VsEnvironmentDetector::writeBatchFile(QIODevice *device, const QString &vcv } } -void VsEnvironmentDetector::parseBatOutput(const QByteArray &output, QVector msvcs) +void VsEnvironmentDetector::parseBatOutput(const QByteArray &output, std::vector msvcs) { QString arch; QProcessEnvironment *targetEnv = 0; @@ -225,7 +225,8 @@ void VsEnvironmentDetector::parseBatOutput(const QByteArray &output, QVectorenvironment; + targetEnv = &msvcs.front()->environment; + msvcs.erase(msvcs.begin()); } else { int idx = line.indexOf('='); if (idx < 0) diff --git a/src/lib/corelib/tools/vsenvironmentdetector.h b/src/lib/corelib/tools/vsenvironmentdetector.h index 30a574edb..4b973a34d 100644 --- a/src/lib/corelib/tools/vsenvironmentdetector.h +++ b/src/lib/corelib/tools/vsenvironmentdetector.h @@ -60,14 +60,14 @@ public: VsEnvironmentDetector(); bool start(MSVC *msvc); - bool start(QVector msvcs); + bool start(std::vector msvcs); QString errorString() const { return m_errorString; } private: QString findVcVarsAllBat(const MSVC &msvc) const; - bool startDetection(const QVector &compatibleMSVCs); - void writeBatchFile(QIODevice *device, const QString &vcvarsallbat, const QVector &msvcs) const; - void parseBatOutput(const QByteArray &output, QVector msvcs); + bool startDetection(const std::vector &compatibleMSVCs); + void writeBatchFile(QIODevice *device, const QString &vcvarsallbat, const std::vector &msvcs) const; + void parseBatOutput(const QByteArray &output, std::vector msvcs); const QString m_windowsSystemDirPath; QString m_errorString; diff --git a/tests/auto/api/tst_api.cpp b/tests/auto/api/tst_api.cpp index eadbc1559..5c8a81c2c 100644 --- a/tests/auto/api/tst_api.cpp +++ b/tests/auto/api/tst_api.cpp @@ -47,13 +47,13 @@ #include #include #include -#include #include #include #include #include +#include #define VERIFY_NO_ERROR(errorInfo) \ QVERIFY2(!errorInfo.hasError(), qPrintable(errorInfo.toString())) @@ -94,10 +94,10 @@ class ProcessResultReceiver : public QObject Q_OBJECT public: QString output; - QVector results; + std::vector results; void handleProcessResult(const qbs::ProcessResult &result) { - results << result; + results.push_back(result); output += result.stdErr().join(QLatin1Char('\n')); output += result.stdOut().join(QLatin1Char('\n')); } @@ -1723,8 +1723,8 @@ void TestApi::processResult() const qbs::ErrorInfo errorInfo = doBuildProject("process-result", nullptr, &resultReceiver, nullptr, qbs::BuildOptions(), overridden); QCOMPARE(expectedExitCode != 0, errorInfo.hasError()); - QVERIFY(resultReceiver.results.count() > 1); - const qbs::ProcessResult &result = resultReceiver.results.last(); + QVERIFY(resultReceiver.results.size() > 1); + const qbs::ProcessResult &result = resultReceiver.results.back(); QVERIFY2(result.executableFilePath().contains("app"), qPrintable(result.executableFilePath())); QCOMPARE(expectedExitCode, result.exitCode()); QCOMPARE(expectedExitCode == 0, result.success()); @@ -1737,7 +1737,7 @@ void TestApi::processResult() QByteArray expectedContent; const QStringList consoleOutput; }; - const QVector checkParams({ + const std::vector checkParams({ CheckParams(redirectStdout, "stdout.txt", "stdout", result.stdOut()), CheckParams(redirectStderr, "stderr.txt", "stderr", result.stdErr()) }); -- cgit v1.2.3