aboutsummaryrefslogtreecommitdiffstats
path: root/src/lib/corelib/jsextensions
diff options
context:
space:
mode:
authorJoerg Bornemann <joerg.bornemann@digia.com>2014-04-14 17:35:33 +0200
committerChristian Kandeler <christian.kandeler@digia.com>2014-04-15 12:23:35 +0200
commita27e8552174475e95cb5ec42612c41e25bcd1364 (patch)
treebebabf5d88833fb8eb68f0b37b5fe937ed1a0df7 /src/lib/corelib/jsextensions
parent9553d270d18f1f5e0be838a750a8443d8218ff9e (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.cpp5
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);
}