aboutsummaryrefslogtreecommitdiffstats
path: root/src/lib/corelib/language/evaluatorscriptclass.cpp
diff options
context:
space:
mode:
authorChristian Kandeler <christian.kandeler@qt.io>2017-12-06 13:23:08 +0100
committerChristian Kandeler <christian.kandeler@qt.io>2017-12-08 21:46:17 +0000
commit30d724ad339e30055f72c0264833d1cd4e5f9122 (patch)
treea6cbb70e678575f988d24d2845a87fcda484c739 /src/lib/corelib/language/evaluatorscriptclass.cpp
parented666c60b98147642ff1fd3742a8b66893fe2325 (diff)
Fix crash when "original" is being misused
We simply assumed the value would be a module property. Task-number: QBS-1255 Change-Id: I3994f6db62f64ed44cb4d01f0938bc2d536fb3f3 Reviewed-by: Jake Petroules <jake.petroules@qt.io>
Diffstat (limited to 'src/lib/corelib/language/evaluatorscriptclass.cpp')
-rw-r--r--src/lib/corelib/language/evaluatorscriptclass.cpp7
1 files changed, 7 insertions, 0 deletions
diff --git a/src/lib/corelib/language/evaluatorscriptclass.cpp b/src/lib/corelib/language/evaluatorscriptclass.cpp
index cb88788f6..be99a53a2 100644
--- a/src/lib/corelib/language/evaluatorscriptclass.cpp
+++ b/src/lib/corelib/language/evaluatorscriptclass.cpp
@@ -176,6 +176,13 @@ private:
const Item *item = itemOfProperty;
while (item->type() == ItemType::ModuleInstance)
item = item->prototype();
+ if (item->type() != ItemType::Module && item->type() != ItemType::Export) {
+ const QString errorMessage = Tr::tr("The special value 'original' can only "
+ "be used with module properties.");
+ extraScope = engine->currentContext()->throwError(errorMessage);
+ result.second = false;
+ return result;
+ }
SVConverter converter(scriptClass, object, item->property(*propertyName), item,
propertyName, data, &originalValue);
converter.start();