summaryrefslogtreecommitdiffstats
path: root/src/declarative/qml/qmlobjectscriptclass.cpp
diff options
context:
space:
mode:
authorAaron Kennedy <aaron.kennedy@nokia.com>2009-10-08 09:52:18 (GMT)
committerAaron Kennedy <aaron.kennedy@nokia.com>2009-10-08 09:52:18 (GMT)
commitd9f715adfbd0483f113f3108d5285c31833763c1 (patch)
tree21c9a747fdbcef0f73cad41789a2c48dd90508cc /src/declarative/qml/qmlobjectscriptclass.cpp
parentf41e84f6ce70e8b05f6cfcadc6780dc5ecc2f8b0 (diff)
downloadQt-d9f715adfbd0483f113f3108d5285c31833763c1.zip
Qt-d9f715adfbd0483f113f3108d5285c31833763c1.tar.gz
Qt-d9f715adfbd0483f113f3108d5285c31833763c1.tar.bz2
Small optimization
Diffstat (limited to 'src/declarative/qml/qmlobjectscriptclass.cpp')
-rw-r--r--src/declarative/qml/qmlobjectscriptclass.cpp7
1 files changed, 4 insertions, 3 deletions
diff --git a/src/declarative/qml/qmlobjectscriptclass.cpp b/src/declarative/qml/qmlobjectscriptclass.cpp
index d3a2a22..41573a2 100644
--- a/src/declarative/qml/qmlobjectscriptclass.cpp
+++ b/src/declarative/qml/qmlobjectscriptclass.cpp
@@ -214,12 +214,13 @@ QScriptValue QmlObjectScriptClass::property(QObject *obj, const Identifier &name
return enginePriv->valueTypeClass->newObject(obj, lastData->coreIndex, valueType);
}
- QVariant var = obj->metaObject()->property(lastData->coreIndex).read(obj);
-
if (lastData->flags & QmlPropertyCache::Data::IsQObjectDerived) {
- QObject *rv = *(QObject **)var.constData();
+ QObject *rv = 0;
+ void *args[] = { &rv, 0 };
+ QMetaObject::metacall(obj, QMetaObject::ReadProperty, lastData->coreIndex, args);
return newQObject(rv);
} else {
+ QVariant var = obj->metaObject()->property(lastData->coreIndex).read(obj);
return enginePriv->scriptValueFromVariant(var);
}