diff options
author | Ulf Hermann <ulf.hermann@qt.io> | 2022-09-01 16:14:30 +0200 |
---|---|---|
committer | Ulf Hermann <ulf.hermann@qt.io> | 2022-09-07 16:57:16 +0200 |
commit | d3b3fef5a878d7fd53de6a9f9fff196a273930e3 (patch) | |
tree | 76b96ff3d6f34a01bf4a9881dd75626921c49daf /src/qml/qml/qqmldata_p.h | |
parent | 5cda89ce030ff5fbc9e95be1b9ca74adb401a9d7 (diff) |
Qml: Allow const and non-const QObjectWrappers to coexist
We can access the same QObject in const and non-const contexts. Both
should be possible. Store the const objectwrapper in
m_multiplyWrappedObjects. That's somewhat slow, but const QObjects are
rather rare.
Pick-to: 6.4
Fixes: QTBUG-98479
Change-Id: I047afc121f5c29b955cd833e0a2c8299fc52b021
Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
Diffstat (limited to 'src/qml/qml/qqmldata_p.h')
-rw-r--r-- | src/qml/qml/qqmldata_p.h | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/src/qml/qml/qqmldata_p.h b/src/qml/qml/qqmldata_p.h index f72feb2ce6..5b7c05c61e 100644 --- a/src/qml/qml/qqmldata_p.h +++ b/src/qml/qml/qqmldata_p.h @@ -103,7 +103,9 @@ public: // set when at least one of the object's properties is intercepted quint32 hasInterceptorMetaObject:1; quint32 hasVMEMetaObject:1; - quint32 dummy:8; + // If we have another wrapper for a const QObject * in the multiply wrapped QObjects. + quint32 hasConstWrapper: 1; + quint32 dummy:7; // When bindingBitsSize < sizeof(ptr), we store the binding bit flags inside // bindingBitsValue. When we need more than sizeof(ptr) bits, we allocated |