diff options
author | Thomas Hartmann <Thomas.Hartmann@nokia.com> | 2011-05-06 13:28:09 +0200 |
---|---|---|
committer | Thomas Hartmann <Thomas.Hartmann@nokia.com> | 2011-05-06 13:28:09 +0200 |
commit | 134e41ee541ae64c5276aa8facc554840f6497ef (patch) | |
tree | adc1068982022890aefd452a5fddc384ac0cdc19 /src/plugins/qmldesigner/designercore/instances/nodeinstancemetaobject.cpp | |
parent | 0515e73e318e3b20278c56dff71aa26cd6b2696a (diff) | |
download | qt-creator-134e41ee541ae64c5276aa8facc554840f6497ef.tar.gz |
QmlDesigner.nodeInstances: crash fix
In some cases object() != m_nodeInstance->object().
Reading on the worng type of QObject can lead to very interesting
effects. (e. g. decrementing the pointer to the vtable)
Task-Nr: QTCREATORBUG-4675
Reviewed-by: Marco Bubke
Diffstat (limited to 'src/plugins/qmldesigner/designercore/instances/nodeinstancemetaobject.cpp')
-rw-r--r-- | src/plugins/qmldesigner/designercore/instances/nodeinstancemetaobject.cpp | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/src/plugins/qmldesigner/designercore/instances/nodeinstancemetaobject.cpp b/src/plugins/qmldesigner/designercore/instances/nodeinstancemetaobject.cpp index 4d04bcd3ea..e51cc3a123 100644 --- a/src/plugins/qmldesigner/designercore/instances/nodeinstancemetaobject.cpp +++ b/src/plugins/qmldesigner/designercore/instances/nodeinstancemetaobject.cpp @@ -92,7 +92,7 @@ int NodeInstanceMetaObject::metaCall(QMetaObject::Call call, int id, void **a) if (call == QMetaObject::WriteProperty && !property(id).hasNotifySignal()) { - oldValue = property(id).read(m_nodeInstance->object()); + oldValue = property(id).read(object()); } ObjectNodeInstance::Pointer objectNodeInstance = m_nodeInstance.toStrongRef(); @@ -119,7 +119,7 @@ int NodeInstanceMetaObject::metaCall(QMetaObject::Call call, int id, void **a) if (metaCallReturnValue >= 0 && call == QMetaObject::WriteProperty && !property(id).hasNotifySignal() - && oldValue != property(id).read(m_nodeInstance->object())) + && oldValue != property(id).read(object())) notifyPropertyChange(id); return metaCallReturnValue; |