From 55027c23df76444a128411cfb3ef011f65b40a64 Mon Sep 17 00:00:00 2001 From: Joerg Bornemann Date: Tue, 23 Sep 2014 18:44:02 +0200 Subject: introduce VCFilter::findFile Move common code into a function and exit early from simple search loop. Change-Id: I88d1227653e28badc213fbe4ebe1e2a19f6e5793 Reviewed-by: Oswald Buddenhagen --- qmake/generators/win32/msbuild_objectmodel.cpp | 10 ++-------- qmake/generators/win32/msvc_objectmodel.cpp | 23 +++++++++++++++-------- qmake/generators/win32/msvc_objectmodel.h | 1 + 3 files changed, 18 insertions(+), 16 deletions(-) (limited to 'qmake/generators/win32') diff --git a/qmake/generators/win32/msbuild_objectmodel.cpp b/qmake/generators/win32/msbuild_objectmodel.cpp index 6311128d70..035da5059f 100644 --- a/qmake/generators/win32/msbuild_objectmodel.cpp +++ b/qmake/generators/win32/msbuild_objectmodel.cpp @@ -1872,14 +1872,8 @@ bool VCXProjectWriter::outputFileConfig(VCFilter filter, XmlOutput &xml, XmlOutp filter.CompilerTool = VCCLCompilerTool(); filter.CompilerTool.config = filter.Config; - bool inBuild = false; - VCFilterFile info; - for (int i = 0; i < filter.Files.count(); ++i) { - if (filter.Files.at(i).file == filename) { - info = filter.Files.at(i); - inBuild = true; - } - } + bool inBuild; + VCFilterFile info = filter.findFile(filename, &inBuild); inBuild &= !info.excludeFromBuild; if (inBuild) { diff --git a/qmake/generators/win32/msvc_objectmodel.cpp b/qmake/generators/win32/msvc_objectmodel.cpp index 75134d9182..f174b654d7 100644 --- a/qmake/generators/win32/msvc_objectmodel.cpp +++ b/qmake/generators/win32/msvc_objectmodel.cpp @@ -2241,6 +2241,19 @@ void VCFilter::modifyPCHstage(QString str) CompilerTool.ForcedIncludeFiles = QStringList("$(NOINHERIT)"); } +VCFilterFile VCFilter::findFile(const QString &filePath, bool *found) const +{ + for (int i = 0; i < Files.count(); ++i) { + const VCFilterFile &f = Files.at(i); + if (f.file == filePath) { + *found = true; + return f; + } + } + *found = false; + return VCFilterFile(); +} + bool VCFilter::addExtraCompiler(const VCFilterFile &info) { const QStringList &extraCompilers = Project->extraCompilerSources.value(info.file); @@ -2974,14 +2987,8 @@ void VCProjectWriter::outputFileConfig(VCFilter &filter, XmlOutput &xml, const Q filter.CompilerTool.WarningLevel = warningLevelUnknown; filter.CompilerTool.config = filter.Config; - bool inBuild = false; - VCFilterFile info; - for (int i = 0; i < filter.Files.count(); ++i) { - if (filter.Files.at(i).file == filename) { - info = filter.Files.at(i); - inBuild = true; - } - } + bool inBuild; + VCFilterFile info = filter.findFile(filename, &inBuild); inBuild &= !info.excludeFromBuild; if (inBuild) { diff --git a/qmake/generators/win32/msvc_objectmodel.h b/qmake/generators/win32/msvc_objectmodel.h index 521f7f2e4a..850f5f0f57 100644 --- a/qmake/generators/win32/msvc_objectmodel.h +++ b/qmake/generators/win32/msvc_objectmodel.h @@ -952,6 +952,7 @@ public: void addFiles(const ProStringList& fileList); bool addExtraCompiler(const VCFilterFile &info); void modifyPCHstage(QString str); + VCFilterFile findFile(const QString &filePath, bool *found) const; // Variables QString Name; -- cgit v1.2.3