summaryrefslogtreecommitdiffstats
path: root/src/declarative/qml
diff options
context:
space:
mode:
authorAaron Kennedy <aaron.kennedy@nokia.com>2010-04-09 08:39:08 (GMT)
committerAaron Kennedy <aaron.kennedy@nokia.com>2010-04-09 08:39:08 (GMT)
commit2c8785e698d68edde74e6db2a3dd1715e17baee8 (patch)
tree987c44c7a3630a4b38b7101bb7e0c8e8cfe46a9c /src/declarative/qml
parentcf6f2eb2ccd1675d890904d12c9717e4570b123b (diff)
downloadQt-2c8785e698d68edde74e6db2a3dd1715e17baee8.zip
Qt-2c8785e698d68edde74e6db2a3dd1715e17baee8.tar.gz
Qt-2c8785e698d68edde74e6db2a3dd1715e17baee8.tar.bz2
Disallow writes to read-only value type properties
QTBUG-9685
Diffstat (limited to 'src/declarative/qml')
-rw-r--r--src/declarative/qml/qdeclarativecompiler.cpp4
1 files changed, 4 insertions, 0 deletions
diff --git a/src/declarative/qml/qdeclarativecompiler.cpp b/src/declarative/qml/qdeclarativecompiler.cpp
index d2b2024..bd664fe 100644
--- a/src/declarative/qml/qdeclarativecompiler.cpp
+++ b/src/declarative/qml/qdeclarativecompiler.cpp
@@ -1866,6 +1866,10 @@ bool QDeclarativeCompiler::buildGroupedProperty(QDeclarativeParser::Property *pr
}
}
+ if (!obj->metaObject()->property(prop->index).isWritable()) {
+ COMPILE_EXCEPTION(prop, QCoreApplication::translate("QDeclarativeCompiler", "Invalid property assignment: \"%1\" is a read-only property").arg(QString::fromUtf8(prop->name)));
+ }
+
COMPILE_CHECK(buildValueTypeProperty(ep->valueTypes[prop->type],
prop->value, obj, ctxt.incr()));
obj->addValueTypeProperty(prop);