aboutsummaryrefslogtreecommitdiffstats
path: root/src/lib/corelib/language/moduleloader.cpp
diff options
context:
space:
mode:
authorIvan Komissarov <ABBAPOH@gmail.com>2018-08-07 13:35:16 +0300
committerIvan Komissarov <ABBAPOH@gmail.com>2018-08-07 12:24:52 +0000
commit294e1153249c79a9536b1e5864407cbc2aae2ebd (patch)
tree3da1c972ca9e09e7bd0b48494fb59bb51f01dd50 /src/lib/corelib/language/moduleloader.cpp
parentfcab1d77bf0572477e0c581e721f723ccd9f2eb0 (diff)
Reserve corrrect amount of memory for item's children
Due to QList grow strategy, we end with unused padding at the end of QList. Removing this padding can save a bit memory because this function is frequently called for huge projects. Task-number: QBS-120 Change-Id: Id5a3836b36c03e59d885d77a87a969e9e3784e81 Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
Diffstat (limited to 'src/lib/corelib/language/moduleloader.cpp')
-rw-r--r--src/lib/corelib/language/moduleloader.cpp2
1 files changed, 2 insertions, 0 deletions
diff --git a/src/lib/corelib/language/moduleloader.cpp b/src/lib/corelib/language/moduleloader.cpp
index ac6d756b8..6115ac43d 100644
--- a/src/lib/corelib/language/moduleloader.cpp
+++ b/src/lib/corelib/language/moduleloader.cpp
@@ -3383,6 +3383,8 @@ void ModuleLoader::instantiateModule(ProductContext *productContext, Item *expor
void ModuleLoader::createChildInstances(Item *instance, Item *prototype,
QHash<Item *, Item *> *prototypeInstanceMap) const
{
+ instance->childrenReserve(instance->children().size() + prototype->children().size());
+
for (Item * const childPrototype : prototype->children()) {
Item *childInstance = Item::create(m_pool, childPrototype->type());
prototypeInstanceMap->insert(childPrototype, childInstance);