diff options
author | Ivan Komissarov <ABBAPOH@gmail.com> | 2018-08-07 13:35:16 +0300 |
---|---|---|
committer | Ivan Komissarov <ABBAPOH@gmail.com> | 2018-08-07 12:24:52 +0000 |
commit | 294e1153249c79a9536b1e5864407cbc2aae2ebd (patch) | |
tree | 3da1c972ca9e09e7bd0b48494fb59bb51f01dd50 /src/lib/corelib/language/moduleloader.cpp | |
parent | fcab1d77bf0572477e0c581e721f723ccd9f2eb0 (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.cpp | 2 |
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); |