aboutsummaryrefslogtreecommitdiffstats
path: root/src/plugins/compilationdatabaseprojectmanager
diff options
context:
space:
mode:
authorhjk <hjk@qt.io>2023-04-04 16:43:44 +0200
committerhjk <hjk@qt.io>2023-04-17 11:05:39 +0000
commitd8de6c88e9deea13b7a95e01c6280882afc490ff (patch)
tree4db0c77bd6811d5c1b850a4ac54ed9bf28e92458 /src/plugins/compilationdatabaseprojectmanager
parent6b661ef1bed853acaa5a4006f9ba32a53ac465df (diff)
Avoid creation of temporary lists of ProjectNodes
Change-Id: Iac84f7f95291fb3b12a071a066d358aaab309c52 Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
Diffstat (limited to 'src/plugins/compilationdatabaseprojectmanager')
-rw-r--r--src/plugins/compilationdatabaseprojectmanager/compilationdatabaseproject.cpp11
1 files changed, 4 insertions, 7 deletions
diff --git a/src/plugins/compilationdatabaseprojectmanager/compilationdatabaseproject.cpp b/src/plugins/compilationdatabaseprojectmanager/compilationdatabaseproject.cpp
index 49712c32061..ad614e7e23a 100644
--- a/src/plugins/compilationdatabaseprojectmanager/compilationdatabaseproject.cpp
+++ b/src/plugins/compilationdatabaseprojectmanager/compilationdatabaseproject.cpp
@@ -223,13 +223,10 @@ FolderNode *addChildFolderNode(FolderNode *parent, const QString &childName)
FolderNode *addOrGetChildFolderNode(FolderNode *parent, const QString &childName)
{
- for (FolderNode *folder : parent->folderNodes()) {
- if (folder->filePath().fileName() == childName) {
- return folder;
- }
- }
-
- return addChildFolderNode(parent, childName);
+ FolderNode *fn = parent->findChildFolderNode([&](FolderNode *folder) {
+ return folder->filePath().fileName() == childName;
+ });
+ return fn ? fn : addChildFolderNode(parent, childName);
}
// Return the node for folderPath.