diff options
author | Edward Welbourne <edward.welbourne@qt.io> | 2020-10-09 15:40:10 +0200 |
---|---|---|
committer | Edward Welbourne <edward.welbourne@qt.io> | 2020-11-08 13:00:46 +0100 |
commit | b83b990659419b37d8ebffd451eb49bccfe62669 (patch) | |
tree | 102b69322d67fb67bff0dd1dd3d2077ee05eb07f /src/corelib/text/qlocale.cpp | |
parent | e330a9bb44fd5deb86a46934b2b45c1ad1f9f70a (diff) |
Replace QLocalePriave::create() with a plain constructor
Be up front about using new in all the places where it's created.
Made one of the global statics into a function-local static.
Eliminated a static made redundant by its const sibling.
Made two members const now that they can be.
Change-Id: I46532b3c1e0e62d1f8c84f55494f70cff09d4404
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Diffstat (limited to 'src/corelib/text/qlocale.cpp')
-rw-r--r-- | src/corelib/text/qlocale.cpp | 26 |
1 files changed, 10 insertions, 16 deletions
diff --git a/src/corelib/text/qlocale.cpp b/src/corelib/text/qlocale.cpp index 15a65f2203..89928a5e87 100644 --- a/src/corelib/text/qlocale.cpp +++ b/src/corelib/text/qlocale.cpp @@ -583,16 +583,10 @@ static const QLocaleData *default_data = nullptr; static const QLocaleData *const c_data = locale_data; static QLocalePrivate *c_private() { - static QLocalePrivate c_locale{ - c_data, Q_BASIC_ATOMIC_INITIALIZER(1), 0, QLocale::OmitGroupSeparator }; + static QLocalePrivate c_locale(c_data, 0, QLocale::OmitGroupSeparator, 1); return &c_locale; } -static const QLocaleData *systemData(); -static uint defaultIndex(); -Q_GLOBAL_STATIC_WITH_ARGS(QExplicitlySharedDataPointer<QLocalePrivate>, systemLocalePrivate, - (QLocalePrivate::create(systemData(), defaultIndex()))) - #ifndef QT_NO_SYSTEMLOCALE /****************************************************************************** ** Default system locale behavior @@ -743,7 +737,7 @@ QDataStream &operator>>(QDataStream &ds, QLocale &l) static const int locale_data_size = sizeof(locale_data)/sizeof(QLocaleData) - 1; Q_GLOBAL_STATIC_WITH_ARGS(QSharedDataPointer<QLocalePrivate>, defaultLocalePrivate, - (QLocalePrivate::create(defaultData(), defaultIndex()))) + (new QLocalePrivate(defaultData(), defaultIndex()))) static QLocalePrivate *localePrivateByName(const QString &name) { @@ -751,9 +745,9 @@ static QLocalePrivate *localePrivateByName(const QString &name) return c_private(); const int index = QLocaleData::findLocaleIndex(QLocaleId::fromName(name)); Q_ASSERT(index >= 0 && size_t(index) < std::size(locale_data) - 1); - return QLocalePrivate::create(locale_data + index, index, - locale_data[index].m_language_id == QLocale::C - ? QLocale::OmitGroupSeparator : QLocale::DefaultNumberOptions); + return new QLocalePrivate(locale_data + index, index, + locale_data[index].m_language_id == QLocale::C + ? QLocale::OmitGroupSeparator : QLocale::DefaultNumberOptions); } static QLocalePrivate *findLocalePrivate(QLocale::Language language, QLocale::Script script, @@ -775,7 +769,7 @@ static QLocalePrivate *findLocalePrivate(QLocale::Language language, QLocale::Sc data = defaultData(); index = defaultIndex(); } - return QLocalePrivate::create(data, index, numberOptions); + return new QLocalePrivate(data, index, numberOptions); } QString QLocaleData::decimalPoint() const @@ -2442,10 +2436,10 @@ QString QLocale::toString(double i, char f, int prec) const QLocale QLocale::system() { + static QLocalePrivate locale(systemData(), defaultIndex(), DefaultNumberOptions, 1); QT_PREPEND_NAMESPACE(systemData)(); // trigger updating of the system data if necessary - if (systemLocalePrivate.isDestroyed()) - return QLocale(QLocale::C); - return QLocale(*systemLocalePrivate->data()); + + return QLocale(locale); } @@ -2484,7 +2478,7 @@ QList<QLocale> QLocale::matchingLocales(QLocale::Language language, const QLocaleId id = locale_data[index].id(); if (filter.acceptScriptCountry(id)) { result.append(QLocale(*(id.language_id == C ? c_private() - : QLocalePrivate::create(locale_data + index, index)))); + : new QLocalePrivate(locale_data + index, index)))); } ++index; } while (filter.acceptLanguage(locale_data[index].m_language_id)); |