From abe802cd00bb28e95c63d318b0360db6fbf51666 Mon Sep 17 00:00:00 2001 From: Marc Mutz Date: Tue, 4 Jan 2022 17:46:20 +0100 Subject: [PATCH] QTzTimeZonePrivate: use ctor delegation instead of init() This makes it obvious that the code in init() is only called from the constructor and its m_icu handling doesn't need mutex protection (to be added in a subsequent commit). Since the input to the ctor is the result of a virtual function, factor said virtual into a static function and call that instead. Pick-to: 6.3 6.2 5.15 Change-Id: I7c49f2e865201a2ce2b2d86b19dae29c6d337e0e Reviewed-by: Lars Knoll Reviewed-by: Thiago Macieira --- src/corelib/time/qtimezoneprivate_p.h | 2 +- src/corelib/time/qtimezoneprivate_tz.cpp | 16 ++++++++-------- 2 files changed, 9 insertions(+), 9 deletions(-) diff --git a/src/corelib/time/qtimezoneprivate_p.h b/src/corelib/time/qtimezoneprivate_p.h index b37d9995e3..484bbe56eb 100644 --- a/src/corelib/time/qtimezoneprivate_p.h +++ b/src/corelib/time/qtimezoneprivate_p.h @@ -348,7 +348,7 @@ public: QList availableTimeZoneIds(QLocale::Territory territory) const override; private: - void init(const QByteArray &ianaId); + static QByteArray staticSystemTimeZoneId(); QList getPosixTransitions(qint64 msNear) const; Data dataForTzTransition(QTzTransitionTime tran) const; diff --git a/src/corelib/time/qtimezoneprivate_tz.cpp b/src/corelib/time/qtimezoneprivate_tz.cpp index a9d6d06125..b23ccfb3b2 100644 --- a/src/corelib/time/qtimezoneprivate_tz.cpp +++ b/src/corelib/time/qtimezoneprivate_tz.cpp @@ -719,14 +719,8 @@ static QList calculatePosixTransitions(const QByteArray // Create the system default time zone QTzTimeZonePrivate::QTzTimeZonePrivate() + : QTzTimeZonePrivate(staticSystemTimeZoneId()) { - init(systemTimeZoneId()); -} - -// Create a named time zone -QTzTimeZonePrivate::QTzTimeZonePrivate(const QByteArray &ianaId) -{ - init(ianaId); } QTzTimeZonePrivate::~QTzTimeZonePrivate() @@ -953,7 +947,8 @@ QTzTimeZoneCacheEntry QTzTimeZoneCache::fetchEntry(const QByteArray &ianaId) return ret; } -void QTzTimeZonePrivate::init(const QByteArray &ianaId) +// Create a named time zone +QTzTimeZonePrivate::QTzTimeZonePrivate(const QByteArray &ianaId) { static QTzTimeZoneCache tzCache; auto entry = tzCache.fetchEntry(ianaId); @@ -1360,6 +1355,11 @@ private: } QByteArray QTzTimeZonePrivate::systemTimeZoneId() const +{ + return staticSystemTimeZoneId(); +} + +QByteArray QTzTimeZonePrivate::staticSystemTimeZoneId() { // Check TZ env var first, if not populated try find it QByteArray ianaId = qgetenv("TZ");