diff options
author | Aaron Kennedy <aaron.kennedy@nokia.com> | 2010-04-09 08:39:08 (GMT) |
---|---|---|
committer | Aaron Kennedy <aaron.kennedy@nokia.com> | 2010-04-09 08:39:08 (GMT) |
commit | 2c8785e698d68edde74e6db2a3dd1715e17baee8 (patch) | |
tree | 987c44c7a3630a4b38b7101bb7e0c8e8cfe46a9c /src/declarative/qml | |
parent | cf6f2eb2ccd1675d890904d12c9717e4570b123b (diff) | |
download | Qt-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.cpp | 4 |
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); |