diff options
author | Liang Qi <liang.qi@qt.io> | 2020-03-24 14:36:02 +0100 |
---|---|---|
committer | Liang Qi <liang.qi@qt.io> | 2020-03-24 14:36:02 +0100 |
commit | 576dc2c7010904b2ace4cdd7284599d696832186 (patch) | |
tree | 839f30eff1d150f3e0228fe1f4145986cf2eebe0 /src/corelib/time/qtimezoneprivate_p.h | |
parent | 6a972f44f3f88d6179e8e4eef54396b5808b3f4d (diff) | |
parent | cc1d891b8ed1c4f23183e4b06f46e5840a993e35 (diff) |
Merge remote-tracking branch 'origin/5.14' into 5.15
Conflicts:
src/plugins/platforms/xcb/qxcbdrag.cpp
Change-Id: I0b47324b70b0b4894e54b21aa3e7a5041f9bd5e3
Diffstat (limited to 'src/corelib/time/qtimezoneprivate_p.h')
-rw-r--r-- | src/corelib/time/qtimezoneprivate_p.h | 16 |
1 files changed, 12 insertions, 4 deletions
diff --git a/src/corelib/time/qtimezoneprivate_p.h b/src/corelib/time/qtimezoneprivate_p.h index a57f61f381..f1b7fea1f9 100644 --- a/src/corelib/time/qtimezoneprivate_p.h +++ b/src/corelib/time/qtimezoneprivate_p.h @@ -290,6 +290,16 @@ Q_DECL_CONSTEXPR inline bool operator==(const QTzTransitionRule &lhs, const QTzT Q_DECL_CONSTEXPR inline bool operator!=(const QTzTransitionRule &lhs, const QTzTransitionRule &rhs) noexcept { return !operator==(lhs, rhs); } +// These are stored separately from QTzTimeZonePrivate so that they can be +// cached, avoiding the need to re-parse them from disk constantly. +struct QTzTimeZoneCacheEntry +{ + QVector<QTzTransitionTime> m_tranTimes; + QVector<QTzTransitionRule> m_tranRules; + QList<QByteArray> m_abbreviations; + QByteArray m_posixRule; +}; + class Q_AUTOTEST_EXPORT QTzTimeZonePrivate final : public QTimeZonePrivate { QTzTimeZonePrivate(const QTzTimeZonePrivate &) = default; @@ -337,13 +347,11 @@ private: QVector<QTimeZonePrivate::Data> getPosixTransitions(qint64 msNear) const; Data dataForTzTransition(QTzTransitionTime tran) const; - QVector<QTzTransitionTime> m_tranTimes; - QVector<QTzTransitionRule> m_tranRules; - QList<QByteArray> m_abbreviations; #if QT_CONFIG(icu) mutable QSharedDataPointer<QTimeZonePrivate> m_icu; #endif - QByteArray m_posixRule; + QTzTimeZoneCacheEntry cached_data; + QVector<QTzTransitionTime> tranCache() const { return cached_data.m_tranTimes; } }; #endif // Q_OS_UNIX |