From e1f0da4e2000fdb7033ca6c331019d01169b60e5 Mon Sep 17 00:00:00 2001 From: Jarek Kobus Date: Thu, 25 Jan 2024 14:21:03 +0100 Subject: [PATCH] ClangToolRunner: Reuse LoopList Instead of LoopRepeat + container capture. Change-Id: I5bce612279cf63f6ad1237569b55baad9a98e2ce Reviewed-by: Reviewed-by: hjk --- src/plugins/clangtools/clangtoolrunner.cpp | 24 +++++++++++----------- 1 file changed, 12 insertions(+), 12 deletions(-) diff --git a/src/plugins/clangtools/clangtoolrunner.cpp b/src/plugins/clangtools/clangtoolrunner.cpp index b395ab58808..bd97eac2ea0 100644 --- a/src/plugins/clangtools/clangtoolrunner.cpp +++ b/src/plugins/clangtools/clangtoolrunner.cpp @@ -121,19 +121,19 @@ GroupItem clangToolTask(const AnalyzeUnits &units, FilePath outputFilePath; }; const Storage storage; - const LoopRepeat repeater(units.size()); + const LoopList iterator(units); - const auto mainToolArguments = [units, input, repeater](const ClangToolStorage &data) { + const auto mainToolArguments = [input, iterator](const ClangToolStorage &data) { QStringList result; result << "-export-fixes=" + data.outputFilePath.nativePath(); if (!input.overlayFilePath.isEmpty() && isVFSOverlaySupported(data.executable)) result << "--vfsoverlay=" + input.overlayFilePath; - result << units[repeater.iteration()].file.nativePath(); + result << iterator->file.nativePath(); return result; }; - const auto onSetup = [storage, units, input, setupHandler, repeater] { - const AnalyzeUnit &unit = units[repeater.iteration()]; + const auto onSetup = [storage, input, setupHandler, iterator] { + const AnalyzeUnit &unit = *iterator; if (setupHandler && !setupHandler(unit)) return SetupResult::StopWithError; @@ -153,8 +153,8 @@ GroupItem clangToolTask(const AnalyzeUnits &units, return SetupResult::Continue; }; - const auto onProcessSetup = [storage, units, input, mainToolArguments, repeater](Process &process) { - const AnalyzeUnit &unit = units[repeater.iteration()]; + const auto onProcessSetup = [storage, input, mainToolArguments, iterator](Process &process) { + const AnalyzeUnit &unit = *iterator; process.setEnvironment(input.environment); process.setUseCtrlCStub(true); process.setLowPriority(); @@ -171,13 +171,13 @@ GroupItem clangToolTask(const AnalyzeUnits &units, qCDebug(LOG).noquote() << "Starting" << commandLine.toUserOutput(); process.setCommand(commandLine); }; - const auto onProcessDone = [storage, units, input, outputHandler, repeater]( + const auto onProcessDone = [storage, input, outputHandler, iterator]( const Process &process, DoneWith result) { qCDebug(LOG).noquote() << "Output:\n" << process.cleanedStdOut(); if (!outputHandler) return; - const AnalyzeUnit &unit = units[repeater.iteration()]; + const AnalyzeUnit &unit = *iterator; if (result == DoneWith::Success) { const QString stdErr = process.cleanedStdErr(); if (stdErr.isEmpty()) @@ -208,7 +208,7 @@ GroupItem clangToolTask(const AnalyzeUnits &units, input.diagnosticsFilter); data.setFutureSynchronizer(ExtensionSystem::PluginManager::futureSynchronizer()); }; - const auto onReadDone = [storage, units, input, outputHandler, repeater]( + const auto onReadDone = [storage, input, outputHandler, iterator]( const Async> &data, DoneWith result) { if (!outputHandler) return; @@ -221,7 +221,7 @@ GroupItem clangToolTask(const AnalyzeUnits &units, else error = diagnosticsResult.error(); outputHandler({ok, - units[repeater.iteration()].file, + iterator->file, storage->outputFilePath, diagnostics, input.tool, @@ -231,7 +231,7 @@ GroupItem clangToolTask(const AnalyzeUnits &units, return Group { parallelLimit(qMax(1, input.runSettings.parallelJobs())), finishAllAndSuccess, - repeater, + iterator, Group { storage, onGroupSetup(onSetup),