diff options
Diffstat (limited to 'src/qml/qml/qqmlvmemetaobject.cpp')
-rw-r--r-- | src/qml/qml/qqmlvmemetaobject.cpp | 11 |
1 files changed, 8 insertions, 3 deletions
diff --git a/src/qml/qml/qqmlvmemetaobject.cpp b/src/qml/qml/qqmlvmemetaobject.cpp index c107f22df5..856dda1663 100644 --- a/src/qml/qml/qqmlvmemetaobject.cpp +++ b/src/qml/qml/qqmlvmemetaobject.cpp @@ -204,7 +204,12 @@ public: QQmlVMEMetaObjectEndpoint(); void tryConnect(); - QFlagPointer<QQmlVMEMetaObject> metaObject; + enum Tag { + NoTag, + EndPointIsConnected + }; + + QTaggedPointer<QQmlVMEMetaObject, Tag> metaObject; }; QQmlVMEMetaObjectEndpoint::QQmlVMEMetaObjectEndpoint() @@ -223,7 +228,7 @@ void QQmlVMEMetaObjectEndpoint::tryConnect() Q_ASSERT(metaObject->compiledObject); int aliasId = this - metaObject->aliasEndpoints; - if (metaObject.flag()) { + if (metaObject.tag() == EndPointIsConnected) { // This is actually notify int sigIdx = metaObject->methodOffset() + aliasId + metaObject->compiledObject->nProperties; metaObject->activate(metaObject->object, sigIdx, nullptr); @@ -258,7 +263,7 @@ void QQmlVMEMetaObjectEndpoint::tryConnect() connect(target, pd->notifyIndex(), ctxt->engine()); } - metaObject.setFlag(); + metaObject.setTag(EndPointIsConnected); } } |