From d953bc76bb67b6e24936af5ab04887e937d5d5c3 Mon Sep 17 00:00:00 2001 From: Axel Spoerl Date: Wed, 12 Apr 2023 19:43:30 +0200 Subject: [PATCH] QAbstractButton::setChecked() - don't update accessibility if stale A QPointer is used as a guard for calling setChecked on a stale object. The guard is not checked on accessibility updates. This patch wraps the accessibility update in a guard check. Fixes: QTBUG-112759 Pick-to: 6.5 Change-Id: Ida47c181b7968911c1805dc244b86347e7afe81b Reviewed-by: Volker Hilsheimer --- src/widgets/widgets/qabstractbutton.cpp | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/src/widgets/widgets/qabstractbutton.cpp b/src/widgets/widgets/qabstractbutton.cpp index 218ec88f53..3b40ad5285 100644 --- a/src/widgets/widgets/qabstractbutton.cpp +++ b/src/widgets/widgets/qabstractbutton.cpp @@ -613,12 +613,13 @@ void QAbstractButton::setChecked(bool checked) if (guard) d->emitToggled(checked); - #if QT_CONFIG(accessibility) - QAccessible::State s; - s.checked = true; - QAccessibleStateChangeEvent event(this, s); - QAccessible::updateAccessibility(&event); + if (guard) { + QAccessible::State s; + s.checked = true; + QAccessibleStateChangeEvent event(this, s); + QAccessible::updateAccessibility(&event); + } #endif }