diff options
author | Joerg Bornemann <joerg.bornemann@digia.com> | 2014-04-14 17:35:33 +0200 |
---|---|---|
committer | Christian Kandeler <christian.kandeler@digia.com> | 2014-04-15 12:23:35 +0200 |
commit | a27e8552174475e95cb5ec42612c41e25bcd1364 (patch) | |
tree | bebabf5d88833fb8eb68f0b37b5fe937ed1a0df7 /src/lib/corelib/jsextensions | |
parent | 9553d270d18f1f5e0be838a750a8443d8218ff9e (diff) |
fix module property cache
When caching module properties, we must take into account whether
we're requesting one or multiple values. Otherwise we might get
the wrong cached result.
Task-number: QBS-539
Change-Id: I9ca17d3a537922f37dc70be4dbfd73416b6bdfc3
Reviewed-by: Christian Kandeler <christian.kandeler@digia.com>
Diffstat (limited to 'src/lib/corelib/jsextensions')
-rw-r--r-- | src/lib/corelib/jsextensions/moduleproperties.cpp | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/src/lib/corelib/jsextensions/moduleproperties.cpp b/src/lib/corelib/jsextensions/moduleproperties.cpp index 93aab3975..b8a2d27d8 100644 --- a/src/lib/corelib/jsextensions/moduleproperties.cpp +++ b/src/lib/corelib/jsextensions/moduleproperties.cpp @@ -124,7 +124,8 @@ QScriptValue ModuleProperties::moduleProperties(QScriptContext *context, QScript const QString moduleName = internalModuleName(context->argument(0).toString()); const QString propertyName = context->argument(1).toString(); - QVariant value = qbsEngine->retrieveFromPropertyCache(moduleName, propertyName, properties); + QVariant value = qbsEngine->retrieveFromPropertyCache(moduleName, propertyName, oneValue, + properties); if (!value.isValid()) { if (oneValue) value = PropertyFinder().propertyValue(properties->value(), moduleName, propertyName); @@ -138,7 +139,7 @@ QScriptValue ModuleProperties::moduleProperties(QScriptContext *context, QScript // Cache the variant value. We must not cache the QScriptValue here, because it's a // reference and the user might change the actual object. - qbsEngine->addToPropertyCache(moduleName, propertyName, properties, value); + qbsEngine->addToPropertyCache(moduleName, propertyName, oneValue, properties, value); } return engine->toScriptValue(value); } |