QtPrivate::CurrentCompatPropertyThief: port to QScopedValueRollback
It's what the class is doing, with a bit of convenience on top, to get from QBindingStatus* to its currentCompatProperty, so implement it like that. Simplifies the implementation and fixes a -Wshadow in the constructor. Amends c4bfd32cca547504ebccfad3da4e73a2b712baea. Pick-to: 6.7 6.5 6.2 Task-number: QTBUG-126219 Change-Id: I4ce32e6ae6e6794b578d967c3e22854091470a14 Reviewed-by: Ulf Hermann <ulf.hermann@qt.io> (cherry picked from commit 97cd2e384960a4e9951bd906ba4c52e07c0ea4c5) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
This commit is contained in:
parent
1939eba8a3
commit
3acde1af11
@ -242,21 +242,12 @@ struct CompatPropertySafePoint
|
|||||||
struct CurrentCompatPropertyThief
|
struct CurrentCompatPropertyThief
|
||||||
{
|
{
|
||||||
Q_DISABLE_COPY_MOVE(CurrentCompatPropertyThief)
|
Q_DISABLE_COPY_MOVE(CurrentCompatPropertyThief)
|
||||||
|
QScopedValueRollback<CompatPropertySafePoint *> m_guard;
|
||||||
public:
|
public:
|
||||||
CurrentCompatPropertyThief(QBindingStatus *status)
|
CurrentCompatPropertyThief(QBindingStatus *status)
|
||||||
: status(&status->currentCompatProperty)
|
: m_guard(status->currentCompatProperty, nullptr)
|
||||||
, stolen(std::exchange(status->currentCompatProperty, nullptr))
|
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
~CurrentCompatPropertyThief()
|
|
||||||
{
|
|
||||||
*status = stolen;
|
|
||||||
}
|
|
||||||
|
|
||||||
private:
|
|
||||||
CompatPropertySafePoint **status = nullptr;
|
|
||||||
CompatPropertySafePoint *stolen = nullptr;
|
|
||||||
};
|
};
|
||||||
|
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user