From 2d9471137c0512f2f70ba074f2e179dbfbe29d04 Mon Sep 17 00:00:00 2001 From: hjk Date: Tue, 13 Aug 2019 14:03:12 +0200 Subject: [PATCH] ProjectExplorer: Drop filtering from KitManager::Kits Only uses twice out of 54 cases, saves a few cycles and bytes in the others. Change-Id: I180005d041e3abaf841890d208adfbcb1a51fb74 Reviewed-by: Christian Kandeler --- src/plugins/projectexplorer/kitinformation.cpp | 6 ++++-- src/plugins/projectexplorer/kitmanager.cpp | 9 +++------ src/plugins/projectexplorer/kitmanager.h | 2 +- src/plugins/qmlprojectmanager/qmlproject.cpp | 2 +- 4 files changed, 9 insertions(+), 10 deletions(-) diff --git a/src/plugins/projectexplorer/kitinformation.cpp b/src/plugins/projectexplorer/kitinformation.cpp index 39d32750345..d3c14a0250a 100644 --- a/src/plugins/projectexplorer/kitinformation.cpp +++ b/src/plugins/projectexplorer/kitinformation.cpp @@ -733,8 +733,10 @@ void ToolChainKitAspect::kitsWereLoaded() void ToolChainKitAspect::toolChainUpdated(ToolChain *tc) { - for (Kit *k : KitManager::kits([tc](const Kit *k) { return toolChain(k, tc->language()) == tc; })) - notifyAboutUpdate(k); + for (Kit *k : KitManager::kits()) { + if (toolChain(k, tc->language()) == tc) + notifyAboutUpdate(k); + } } void ToolChainKitAspect::toolChainRemoved(ToolChain *tc) diff --git a/src/plugins/projectexplorer/kitmanager.cpp b/src/plugins/projectexplorer/kitmanager.cpp index 92856bee401..c9597844af9 100644 --- a/src/plugins/projectexplorer/kitmanager.cpp +++ b/src/plugins/projectexplorer/kitmanager.cpp @@ -430,13 +430,10 @@ static KitList restoreKitsHelper(const FilePath &fileName) return result; } -const QList KitManager::kits(const Kit::Predicate &predicate) +const QList KitManager::kits() { - const QList result = Utils::toRawPointer(d->m_kitList); - if (predicate) - return Utils::filtered(result, predicate); - return result; - } + return Utils::toRawPointer(d->m_kitList); +} Kit *KitManager::kit(Id id) { diff --git a/src/plugins/projectexplorer/kitmanager.h b/src/plugins/projectexplorer/kitmanager.h index 060a94d595f..c33c176e5cb 100644 --- a/src/plugins/projectexplorer/kitmanager.h +++ b/src/plugins/projectexplorer/kitmanager.h @@ -167,7 +167,7 @@ public: static KitManager *instance(); ~KitManager() override; - static const QList kits(const Kit::Predicate &predicate = Kit::Predicate()); + static const QList kits(); static Kit *kit(const Kit::Predicate &predicate); static Kit *kit(Core::Id id); static Kit *defaultKit(); diff --git a/src/plugins/qmlprojectmanager/qmlproject.cpp b/src/plugins/qmlprojectmanager/qmlproject.cpp index 8c3c06bce7e..534242d6d48 100644 --- a/src/plugins/qmlprojectmanager/qmlproject.cpp +++ b/src/plugins/qmlprojectmanager/qmlproject.cpp @@ -328,7 +328,7 @@ Project::RestoreResult QmlProject::fromMap(const QVariantMap &map, QString *erro if (!activeTarget()) { // find a kit that matches prerequisites (prefer default one) - const QList kits = KitManager::kits([this](const Kit *k) { + const QList kits = Utils::filtered(KitManager::kits(), [this](const Kit *k) { return !containsType(projectIssues(k), Task::TaskType::Error); });