Fix crash on QLocale::monthName().simplified()
Because monthName() returns a fromRawData() view of internal locale data, we have to avoid simplified()'s optimisation of re-using an unshared object; even if it's not shared, it's not mutable. Fixes: QTBUG-113415 Change-Id: Idac93175434c7a8a21228605578adbe4cc918e7a Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io> Reviewed-by: Marc Mutz <marc.mutz@qt.io> Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
This commit is contained in:
parent
79e6df3e84
commit
eede428084
@ -5737,6 +5737,8 @@ QString QString::simplified_helper(const QString &str)
|
||||
|
||||
QString QString::simplified_helper(QString &str)
|
||||
{
|
||||
if (IS_RAW_DATA(str.d)) // Force a copy, even if not shared:
|
||||
return QStringAlgorithms<const QString>::simplified_helper(str);
|
||||
return QStringAlgorithms<QString>::simplified_helper(str);
|
||||
}
|
||||
|
||||
|
@ -2547,6 +2547,7 @@ void tst_QLocale::monthName()
|
||||
QCOMPARE(c.monthName(1, QLocale::LongFormat), QLatin1String("January"));
|
||||
QCOMPARE(c.monthName(1, QLocale::ShortFormat), QLatin1String("Jan"));
|
||||
QCOMPARE(c.monthName(1, QLocale::NarrowFormat), QLatin1String("1"));
|
||||
QCOMPARE(c.monthName(3).simplified(), "March"); // QTBUG-113415 (crash)
|
||||
|
||||
const QLocale de("de_DE");
|
||||
QCOMPARE(de.monthName(12, QLocale::LongFormat), QLatin1String("Dezember"));
|
||||
|
Loading…
x
Reference in New Issue
Block a user