diff options
author | Aaron Kennedy <aaron.kennedy@nokia.com> | 2009-11-17 06:13:06 (GMT) |
---|---|---|
committer | Aaron Kennedy <aaron.kennedy@nokia.com> | 2009-11-17 06:13:06 (GMT) |
commit | 4e126f5222a3c62a46037c4ac40743f9f2ee9026 (patch) | |
tree | 296c7b4bfce7246cfb6384e4e2b0da025a78a727 /src/declarative/qml | |
parent | c68f26e2d36b57c3872087722b278ce96829b692 (diff) | |
download | Qt-4e126f5222a3c62a46037c4ac40743f9f2ee9026.zip Qt-4e126f5222a3c62a46037c4ac40743f9f2ee9026.tar.gz Qt-4e126f5222a3c62a46037c4ac40743f9f2ee9026.tar.bz2 |
tests
Diffstat (limited to 'src/declarative/qml')
-rw-r--r-- | src/declarative/qml/qmlvmemetaobject.cpp | 12 |
1 files changed, 3 insertions, 9 deletions
diff --git a/src/declarative/qml/qmlvmemetaobject.cpp b/src/declarative/qml/qmlvmemetaobject.cpp index ed28d78..3f5dd475 100644 --- a/src/declarative/qml/qmlvmemetaobject.cpp +++ b/src/declarative/qml/qmlvmemetaobject.cpp @@ -108,15 +108,7 @@ int QmlVMEMetaObject::metaCall(QMetaObject::Call c, int _id, void **a) QPair<int, QmlPropertyValueInterceptor*> pair = interceptors.value(id); int valueIndex = pair.first; QmlPropertyValueInterceptor *vi = pair.second; - QVariant::Type type = QVariant::Invalid; - if (id >= propOffset) { - id -= propOffset; - if (id < metaData->propertyCount) { - type = data[id].type(); - } - } else { - type = property(id).type(); - } + QVariant::Type type = property(id).type(); if (type != QVariant::Invalid) { if (valueIndex != -1) { @@ -129,6 +121,8 @@ int QmlVMEMetaObject::metaCall(QMetaObject::Call c, int _id, void **a) valueType->setValue(QVariant(type, a[0])); QMetaProperty valueProp = valueType->metaObject()->property(valueIndex); vi->write(valueProp.read(valueType)); + + if (!ep) delete valueType; return -1; } else { vi->write(QVariant(type, a[0])); |