aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorJ-P Nurmi <jpnurmi@qt.io>2017-09-27 17:41:40 +0200
committerJ-P Nurmi <jpnurmi@qt.io>2017-09-28 11:38:11 +0000
commit3f1229bb7bfd45fdc09ce8c2a16cc59e322d5d1c (patch)
treec0aef897714fd46de1023d94ec08f0bd8d7fa622 /src
parent576a97774e04858adee9f2080e485a715e985820 (diff)
QQuickButtonGroup: track the checked button with a QPointer
A destroyed button removes itself from a group, but because of the workaround added for QTBUG-52358, there's a moment after clear() when a button is removed from a group and before it is added back to the group. If the button gets destroyed during that period, the group ends up with a dangling pointer. Task-number: QTBUG-62946 Task-number: QTBUG-63470 Change-Id: If994f87b221a7e77f56458866c4d132365c45d6f Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
Diffstat (limited to 'src')
-rw-r--r--src/quicktemplates2/qquickbuttongroup.cpp4
1 files changed, 1 insertions, 3 deletions
diff --git a/src/quicktemplates2/qquickbuttongroup.cpp b/src/quicktemplates2/qquickbuttongroup.cpp
index f0813a17..355fcf6a 100644
--- a/src/quicktemplates2/qquickbuttongroup.cpp
+++ b/src/quicktemplates2/qquickbuttongroup.cpp
@@ -154,8 +154,6 @@ class QQuickButtonGroupPrivate : public QObjectPrivate
Q_DECLARE_PUBLIC(QQuickButtonGroup)
public:
- QQuickButtonGroupPrivate() : checkedButton(nullptr) { }
-
void clear();
void buttonClicked();
void _q_updateCurrent();
@@ -165,7 +163,7 @@ public:
static QQuickAbstractButton *buttons_at(QQmlListProperty<QQuickAbstractButton> *prop, int index);
static void buttons_clear(QQmlListProperty<QQuickAbstractButton> *prop);
- QQuickAbstractButton *checkedButton;
+ QPointer<QQuickAbstractButton> checkedButton;
QVector<QQuickAbstractButton*> buttons;
};