diff options
author | Richard Moe Gustavsen <richard.gustavsen@qt.io> | 2022-03-10 12:19:59 +0100 |
---|---|---|
committer | Richard Moe Gustavsen <richard.gustavsen@qt.io> | 2022-03-10 12:19:59 +0100 |
commit | e798058823d6b3b813807151b91ee7d4c9417c3e (patch) | |
tree | a77487803177ea40775343e87b1ede3e521f0194 /src/quick/util/qquickstate_p_p.h | |
parent | 56993597c05545922bbb2ef7aed49e7e34ac06b9 (diff) | |
parent | 473663128eaaf1c92ada255ac6ef1101c8bda790 (diff) |
Merge remote-tracking branch 'origin/dev' into iosstyle
Change-Id: If094d48e544c4ea14c1e4c21d99322b71b580dde
Diffstat (limited to 'src/quick/util/qquickstate_p_p.h')
-rw-r--r-- | src/quick/util/qquickstate_p_p.h | 12 |
1 files changed, 9 insertions, 3 deletions
diff --git a/src/quick/util/qquickstate_p_p.h b/src/quick/util/qquickstate_p_p.h index d75cfc32ee..3f0545df91 100644 --- a/src/quick/util/qquickstate_p_p.h +++ b/src/quick/util/qquickstate_p_p.h @@ -212,13 +212,19 @@ public: struct OperationGuard : public QQmlGuard<QQuickStateOperation> { - OperationGuard(QObject *obj, QList<OperationGuard> *l) : list(l) { + OperationGuard(QObject *obj, QList<OperationGuard> *l) : QQmlGuard<QQuickStateOperation>( + OperationGuard::objectDestroyedImpl, nullptr) + ,list(l) + { setObject(static_cast<QQuickStateOperation *>(obj)); } QList<OperationGuard> *list; - void objectDestroyed(QQuickStateOperation *) override { + + private: + static void objectDestroyedImpl(QQmlGuardImpl *guard) { + auto This = static_cast<OperationGuard *>(guard); // we assume priv will always be destroyed after objectDestroyed calls - list->removeOne(*this); + This->list->removeOne(*This); } }; QList<OperationGuard> operations; |