aboutsummaryrefslogtreecommitdiffstats
path: root/src/lib/corelib/language/evaluatorscriptclass.cpp
diff options
context:
space:
mode:
authorChristian Kandeler <christian.kandeler@qt.io>2017-05-24 11:41:05 +0200
committerChristian Kandeler <christian.kandeler@qt.io>2017-05-26 08:10:29 +0000
commit08d763ddcf49a17d4f1a96b5e3ab1ffe74a11233 (patch)
treec187d7110603e0edf8ae6a73b9066e37a9fdf32e /src/lib/corelib/language/evaluatorscriptclass.cpp
parent67f9dfd5d6ad09e1f9c9226fd4ba7e557b1b4cb4 (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-xsrc/lib/corelib/language/evaluatorscriptclass.cpp3
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);