diff options
-rw-r--r-- | src/qml/qml/qqmlvmemetaobject.cpp | 5 | ||||
-rw-r--r-- | src/qml/qml/qqmlvmemetaobject_p.h | 2 | ||||
-rw-r--r-- | src/quick/designer/qqmldesignermetaobject.cpp | 12 | ||||
-rw-r--r-- | src/quick/designer/qqmldesignermetaobject_p.h | 4 |
4 files changed, 14 insertions, 9 deletions
diff --git a/src/qml/qml/qqmlvmemetaobject.cpp b/src/qml/qml/qqmlvmemetaobject.cpp index ab3303769f..6021b1ae79 100644 --- a/src/qml/qml/qqmlvmemetaobject.cpp +++ b/src/qml/qml/qqmlvmemetaobject.cpp @@ -457,8 +457,11 @@ QRectF QQmlVMEMetaObject::readPropertyAsRectF(int id) return v->d()->data.value<QRectF>(); } -int QQmlVMEMetaObject::metaCall(QMetaObject::Call c, int _id, void **a) +int QQmlVMEMetaObject::metaCall(QObject *o, QMetaObject::Call c, int _id, void **a) { + Q_ASSERT(o == object); + Q_UNUSED(o); + int id = _id; if (c == QMetaObject::WriteProperty && interceptors && !(*reinterpret_cast<int*>(a[3]) & QQmlPropertyPrivate::BypassInterceptor)) { diff --git a/src/qml/qml/qqmlvmemetaobject_p.h b/src/qml/qml/qqmlvmemetaobject_p.h index 3f289c2cc6..5a4c3d234e 100644 --- a/src/qml/qml/qqmlvmemetaobject_p.h +++ b/src/qml/qml/qqmlvmemetaobject_p.h @@ -180,7 +180,7 @@ public: static QQmlVMEMetaObject *getForSignal(QObject *o, int coreIndex); protected: - virtual int metaCall(QMetaObject::Call _c, int _id, void **_a); + virtual int metaCall(QObject *o, QMetaObject::Call _c, int _id, void **_a); public: friend class QQmlVMEMetaObjectEndpoint; diff --git a/src/quick/designer/qqmldesignermetaobject.cpp b/src/quick/designer/qqmldesignermetaobject.cpp index e80012ba35..76c94b242d 100644 --- a/src/quick/designer/qqmldesignermetaobject.cpp +++ b/src/quick/designer/qqmldesignermetaobject.cpp @@ -226,7 +226,7 @@ int QQmlDesignerMetaObject::propertyOffset() const return cache->propertyOffset(); } -int QQmlDesignerMetaObject::openMetaCall(QMetaObject::Call call, int id, void **a) +int QQmlDesignerMetaObject::openMetaCall(QObject *o, QMetaObject::Call call, int id, void **a) { if ((call == QMetaObject::ReadProperty || call == QMetaObject::WriteProperty) && id >= m_type->propertyOffset()) { @@ -248,14 +248,16 @@ int QQmlDesignerMetaObject::openMetaCall(QMetaObject::Call call, int id, void ** } else { QAbstractDynamicMetaObject *directParent = parent(); if (directParent) - return directParent->metaCall(call, id, a); + return directParent->metaCall(o, call, id, a); else return myObject()->qt_metacall(call, id, a); } } -int QQmlDesignerMetaObject::metaCall(QMetaObject::Call call, int id, void **a) +int QQmlDesignerMetaObject::metaCall(QObject *o, QMetaObject::Call call, int id, void **a) { + Q_ASSERT(myObject() == o); + int metaCallReturnValue = -1; const QMetaProperty propertyById = QQmlVMEMetaObject::property(id); @@ -288,9 +290,9 @@ int QQmlDesignerMetaObject::metaCall(QMetaObject::Call call, int id, void **a) QAbstractDynamicMetaObject *directParent = parent(); if (directParent && id < directParent->propertyOffset()) { - metaCallReturnValue = directParent->metaCall(call, id, a); + metaCallReturnValue = directParent->metaCall(o, call, id, a); } else { - openMetaCall(call, id, a); + openMetaCall(o, call, id, a); } diff --git a/src/quick/designer/qqmldesignermetaobject_p.h b/src/quick/designer/qqmldesignermetaobject_p.h index eca4fb6a99..47f4baad2b 100644 --- a/src/quick/designer/qqmldesignermetaobject_p.h +++ b/src/quick/designer/qqmldesignermetaobject_p.h @@ -68,8 +68,8 @@ protected: static QQmlDesignerMetaObject* getNodeInstanceMetaObject(QObject *object, QQmlEngine *engine); void createNewDynamicProperty(const QString &name); - int openMetaCall(QMetaObject::Call _c, int _id, void **_a); - int metaCall(QMetaObject::Call _c, int _id, void **_a); + int openMetaCall(QObject *o, QMetaObject::Call _c, int _id, void **_a); + int metaCall(QObject *o, QMetaObject::Call _c, int _id, void **_a); void notifyPropertyChange(int id); void setValue(int id, const QVariant &value); QVariant propertyWriteValue(int, const QVariant &); |