aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/qml/qml/qqmlvmemetaobject.cpp5
-rw-r--r--src/qml/qml/qqmlvmemetaobject_p.h2
-rw-r--r--src/quick/designer/qqmldesignermetaobject.cpp12
-rw-r--r--src/quick/designer/qqmldesignermetaobject_p.h4
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 &);