summaryrefslogtreecommitdiffstats
path: root/src/declarative/qml/qmlvmemetaobject.cpp
diff options
context:
space:
mode:
authorAaron Kennedy <aaron.kennedy@nokia.com>2009-11-17 06:13:06 (GMT)
committerAaron Kennedy <aaron.kennedy@nokia.com>2009-11-17 06:13:06 (GMT)
commit4e126f5222a3c62a46037c4ac40743f9f2ee9026 (patch)
tree296c7b4bfce7246cfb6384e4e2b0da025a78a727 /src/declarative/qml/qmlvmemetaobject.cpp
parentc68f26e2d36b57c3872087722b278ce96829b692 (diff)
downloadQt-4e126f5222a3c62a46037c4ac40743f9f2ee9026.zip
Qt-4e126f5222a3c62a46037c4ac40743f9f2ee9026.tar.gz
Qt-4e126f5222a3c62a46037c4ac40743f9f2ee9026.tar.bz2
tests
Diffstat (limited to 'src/declarative/qml/qmlvmemetaobject.cpp')
-rw-r--r--src/declarative/qml/qmlvmemetaobject.cpp12
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]));