summaryrefslogtreecommitdiffstats
path: root/qmake/generators
diff options
context:
space:
mode:
authorAnton Kudryavtsev <a.kudryavtsev@netris.ru>2016-02-01 11:49:22 +0300
committerAnton Kudryavtsev <a.kudryavtsev@netris.ru>2016-02-01 20:57:59 +0000
commit1d3503b8f3b49b0f684e1caa504deb0d05f2c60a (patch)
treee8a32988a6e6af4edd95d10e97b65925e3c09bdf /qmake/generators
parent57ca755d2efbdb7268e8014cb4c50c9ea1c65bfc (diff)
qmake: use reserve to optimize memory allocation.
Change-Id: I6ace338512c24fd9dc11c767a28f0a63454076fa Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
Diffstat (limited to 'qmake/generators')
-rw-r--r--qmake/generators/mac/pbuilder_pbx.cpp5
-rw-r--r--qmake/generators/makefile.cpp18
-rw-r--r--qmake/generators/win32/msvc_nmake.cpp2
-rw-r--r--qmake/generators/win32/winmakefile.cpp4
-rw-r--r--qmake/generators/xmloutput.cpp1
5 files changed, 24 insertions, 6 deletions
diff --git a/qmake/generators/mac/pbuilder_pbx.cpp b/qmake/generators/mac/pbuilder_pbx.cpp
index 3ff022d5f1..e2046c3c17 100644
--- a/qmake/generators/mac/pbuilder_pbx.cpp
+++ b/qmake/generators/mac/pbuilder_pbx.cpp
@@ -1004,7 +1004,10 @@ ProjectBuilderMakefileGenerator::writeMakeParts(QTextStream &t)
ProStringList outputPaths;
const ProStringList &archs = project->values("QMAKE_XCODE_ARCHS");
if (!archs.isEmpty()) {
- for (int i = 0; i < archs.size(); ++i) {
+ const int size = archs.size();
+ inputPaths.reserve(size);
+ outputPaths.reserve(size);
+ for (int i = 0; i < size; ++i) {
const ProString &arch = archs.at(i);
inputPaths << "$(OBJECT_FILE_DIR_$(CURRENT_VARIANT))/" + arch + "/";
outputPaths << "$(LINK_FILE_LIST_$(CURRENT_VARIANT)_" + arch + ")";
diff --git a/qmake/generators/makefile.cpp b/qmake/generators/makefile.cpp
index 0b7b301879..3071e633c6 100644
--- a/qmake/generators/makefile.cpp
+++ b/qmake/generators/makefile.cpp
@@ -776,6 +776,7 @@ MakefileGenerator::init()
if(project->isActiveConfig("depend_includepath"))
incDirs += v["INCLUDEPATH"];
QList<QMakeLocalFileName> deplist;
+ deplist.reserve(incDirs.size());
for (ProStringList::Iterator it = incDirs.begin(); it != incDirs.end(); ++it)
deplist.append(QMakeLocalFileName((*it).toQString()));
QMakeSourceFileInfo::setDependencyPaths(deplist);
@@ -1010,6 +1011,7 @@ MakefileGenerator::writeProjectMakefile()
QList<SubTarget*> targets;
{
ProStringList builds = project->values("BUILDS");
+ targets.reserve(builds.size());
for (ProStringList::Iterator it = builds.begin(); it != builds.end(); ++it) {
SubTarget *st = new SubTarget;
targets.append(st);
@@ -1450,7 +1452,9 @@ QString
MakefileGenerator::fixFileVarGlue(const ProKey &var, const QString &before, const QString &glue, const QString &after) const
{
ProStringList varList;
- for (const ProString &val : project->values(var))
+ const auto values = project->values(var);
+ varList.reserve(values.size());
+ for (const ProString &val : values)
varList << escapeFilePath(Option::fixPathToTargetOS(val.toQString()));
return valGlue(varList, before, glue, after);
}
@@ -2803,7 +2807,9 @@ ProStringList
MakefileGenerator::escapeFilePaths(const ProStringList &paths) const
{
ProStringList ret;
- for (int i = 0; i < paths.size(); ++i)
+ const int size = paths.size();
+ ret.reserve(size);
+ for (int i = 0; i < size; ++i)
ret.append(escapeFilePath(paths.at(i)));
return ret;
}
@@ -2818,7 +2824,9 @@ QStringList
MakefileGenerator::escapeDependencyPaths(const QStringList &paths) const
{
QStringList ret;
- for(int i = 0; i < paths.size(); ++i)
+ const int size = paths.size();
+ ret.reserve(size);
+ for (int i = 0; i < size; ++i)
ret.append(escapeDependencyPath(paths.at(i)));
return ret;
}
@@ -2827,7 +2835,9 @@ ProStringList
MakefileGenerator::escapeDependencyPaths(const ProStringList &paths) const
{
ProStringList ret;
- for (int i = 0; i < paths.size(); ++i)
+ const int size = paths.size();
+ ret.reserve(size);
+ for (int i = 0; i < size; ++i)
ret.append(escapeDependencyPath(paths.at(i).toQString()));
return ret;
}
diff --git a/qmake/generators/win32/msvc_nmake.cpp b/qmake/generators/win32/msvc_nmake.cpp
index e04be1e1e2..3c0b56cfeb 100644
--- a/qmake/generators/win32/msvc_nmake.cpp
+++ b/qmake/generators/win32/msvc_nmake.cpp
@@ -44,6 +44,7 @@ QT_BEGIN_NAMESPACE
static QString nmakePathList(const QStringList &list)
{
QStringList pathList;
+ pathList.reserve(list.size());
for (const QString &path : list)
pathList.append(QDir::cleanPath(path));
@@ -91,6 +92,7 @@ NmakeMakefileGenerator::writeMakefile(QTextStream &t)
t << "\nPATH = " << sdk.binPath() << "\n";
} else {
QStringList sdkStringList;
+ sdkStringList.reserve(sdkList.size());
for (const CeSdkInfo &info : sdkList)
sdkStringList << info.name();
diff --git a/qmake/generators/win32/winmakefile.cpp b/qmake/generators/win32/winmakefile.cpp
index 475aa6d919..e7b57d46be 100644
--- a/qmake/generators/win32/winmakefile.cpp
+++ b/qmake/generators/win32/winmakefile.cpp
@@ -263,7 +263,9 @@ void Win32MakefileGenerator::processRcFileVar()
QString versionString = vers.join('.');
QStringList rcIcons;
- for (const ProString &icon : project->values("RC_ICONS"))
+ const auto icons = project->values("RC_ICONS");
+ rcIcons.reserve(icons.size());
+ for (const ProString &icon : icons)
rcIcons.append(fileFixify(icon.toQString(), FileFixifyAbsolute));
QString companyName;
diff --git a/qmake/generators/xmloutput.cpp b/qmake/generators/xmloutput.cpp
index 4e420a5984..c1c8f5f493 100644
--- a/qmake/generators/xmloutput.cpp
+++ b/qmake/generators/xmloutput.cpp
@@ -81,6 +81,7 @@ XmlOutput::XMLState XmlOutput::state()
void XmlOutput::updateIndent()
{
currentIndent.clear();
+ currentIndent.reserve(currentLevel);
for (int i = 0; i < currentLevel; ++i)
currentIndent.append(indent);
}