QSystemLocale: bail out if accessed post-destruction

There's little we can do, but a lot of content ends up in QLocale very
late in the execution. Let's at least not crash.

Task-number: QTBUG-133206
Pick-to: 6.8
Change-Id: I77d41141cb115147f9befffdd5e69dac19c96044
Reviewed-by: Albert Astals Cid <aacid@kde.org>
Reviewed-by: Edward Welbourne <edward.welbourne@qt.io>
(cherry picked from commit e32f28034ad2383393645777bcd96eab3f696076)
Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
This commit is contained in:
Thiago Macieira 2025-01-24 10:28:30 -08:00 committed by Qt Cherry-pick Bot
parent ad867197cf
commit d5c5f9f352
2 changed files with 4 additions and 0 deletions

View File

@ -127,6 +127,8 @@ QLocale QSystemLocale::fallbackLocale() const
QVariant QSystemLocale::query(QueryType type, QVariant &&in) const QVariant QSystemLocale::query(QueryType type, QVariant &&in) const
{ {
QSystemLocaleData *d = qSystemLocaleData(); QSystemLocaleData *d = qSystemLocaleData();
if (!d)
return QVariant();
if (type == LocaleChanged) { if (type == LocaleChanged) {
d->readEnvironment(); d->readEnvironment();

View File

@ -870,6 +870,8 @@ QLocale QSystemLocale::fallbackLocale() const
QVariant QSystemLocale::query(QueryType type, QVariant &&in) const QVariant QSystemLocale::query(QueryType type, QVariant &&in) const
{ {
QSystemLocalePrivate *d = systemLocalePrivate(); QSystemLocalePrivate *d = systemLocalePrivate();
if (!d)
return QVariant();
switch(type) { switch(type) {
case DecimalPoint: case DecimalPoint:
return d->decimalPoint(); return d->decimalPoint();