diff options
author | Christian Kandeler <christian.kandeler@qt.io> | 2017-05-24 11:41:05 +0200 |
---|---|---|
committer | Christian Kandeler <christian.kandeler@qt.io> | 2017-05-26 08:10:29 +0000 |
commit | 08d763ddcf49a17d4f1a96b5e3ab1ffe74a11233 (patch) | |
tree | c187d7110603e0edf8ae6a73b9066e37a9fdf32e /src/lib/corelib/language/evaluatorscriptclass.cpp | |
parent | 67f9dfd5d6ad09e1f9c9226fd4ba7e557b1b4cb4 (diff) |
Improve dependency tracking between module properties
On the group level, we evaluated too many properties, because we would
pull in dependencies of dependencies, e.g. not only qbs.architecture,
but also cpp.qbs.architecture etc.
On the other hand, we also did not find all dependencies between
properties, because Export items were not properly handled.
The benchmarker tool run on qbs itself says:
========== Performance data for Resolving ==========
Old instruction count: 2802829713
New instruction count: 2431763918
Relative change: -14 %
Old peak memory usage: 22623344 Bytes
New peak memory usage: 21095328 Bytes
Relative change: -7 %
The real-world numbers for larger projects seem to be significantly
higher; with the Qt Creator super project, I am observing a 30% speed-up
on my machine.
Change-Id: Ifbff4a01ef6b5cf5801961a168b79a31d8c6b220
Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
Diffstat (limited to 'src/lib/corelib/language/evaluatorscriptclass.cpp')
-rwxr-xr-x | src/lib/corelib/language/evaluatorscriptclass.cpp | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/src/lib/corelib/language/evaluatorscriptclass.cpp b/src/lib/corelib/language/evaluatorscriptclass.cpp index efc574e37..7f57a9662 100755 --- a/src/lib/corelib/language/evaluatorscriptclass.cpp +++ b/src/lib/corelib/language/evaluatorscriptclass.cpp @@ -538,7 +538,8 @@ public: { if (value->type() == Value::JSSourceValueType && (itemOfProperty->type() == ItemType::ModuleInstance - || itemOfProperty->type() == ItemType::Module)) { + || itemOfProperty->type() == ItemType::Module + || itemOfProperty->type() == ItemType::Export)) { const VariantValueConstPtr varValue = itemOfProperty->variantProperty(QLatin1String("name")); // QBS_CHECK(varValue); |