Chromium Code Reviews| Index: xfa/fxfa/parser/xfa_localemgr.cpp |
| diff --git a/xfa/fxfa/parser/xfa_localemgr.cpp b/xfa/fxfa/parser/xfa_localemgr.cpp |
| index 74565a7ea0afa12f26aa0ab01bb4706840025be1..b3f5cca77cb61e100bb61b021bfb94aa25356b3c 100644 |
| --- a/xfa/fxfa/parser/xfa_localemgr.cpp |
| +++ b/xfa/fxfa/parser/xfa_localemgr.cpp |
| @@ -6,6 +6,8 @@ |
| #include "xfa/fxfa/parser/xfa_localemgr.h" |
| +#include <time.h> |
| + |
| #include <memory> |
| #include <utility> |
| @@ -1245,37 +1247,21 @@ CFX_WideStringC CXFA_LocaleMgr::GetConfigLocaleName(CXFA_Node* pConfig) { |
| return m_wsConfigLocale.AsStringC(); |
| } |
| -static CXFA_TimeZoneProvider* g_pProvider = nullptr; |
| - |
| -// Static. |
| -CXFA_TimeZoneProvider* CXFA_TimeZoneProvider::Create() { |
| - ASSERT(!g_pProvider); |
|
Tom Sepez
2016/11/11 22:19:50
This is the assert that trips when trying to creat
|
| - g_pProvider = new CXFA_TimeZoneProvider(); |
| - return g_pProvider; |
| -} |
| - |
| -// Static. |
| -CXFA_TimeZoneProvider* CXFA_TimeZoneProvider::Get() { |
| - if (!g_pProvider) { |
| - g_pProvider = new CXFA_TimeZoneProvider(); |
| - } |
| - return g_pProvider; |
| -} |
| - |
| -// Static. |
| -void CXFA_TimeZoneProvider::Destroy() { |
| - delete g_pProvider; |
| - g_pProvider = nullptr; |
| -} |
| +static bool g_bProviderTimeZoneSet = false; |
| -#include <time.h> |
| CXFA_TimeZoneProvider::CXFA_TimeZoneProvider() { |
| #if _FXM_PLATFORM_ == _FXM_PLATFORM_WINDOWS_ |
| - _tzset(); |
| + if (!g_bProviderTimeZoneSet) { |
| + g_bProviderTimeZoneSet = true; |
| + _tzset(); |
| + } |
| m_tz.tzHour = (int8_t)(_timezone / 3600 * -1); |
| m_tz.tzMinute = (int8_t)((FXSYS_abs(_timezone) % 3600) / 60); |
| #else |
| - tzset(); |
| + if (!g_bProviderTimeZoneSet) { |
| + g_bProviderTimeZoneSet = true; |
| + tzset(); |
| + } |
| m_tz.tzHour = (int8_t)(timezone / 3600 * -1); |
| m_tz.tzMinute = (int8_t)((FXSYS_abs((int)timezone) % 3600) / 60); |
| #endif |
| @@ -1283,10 +1269,6 @@ CXFA_TimeZoneProvider::CXFA_TimeZoneProvider() { |
| CXFA_TimeZoneProvider::~CXFA_TimeZoneProvider() {} |
| -void CXFA_TimeZoneProvider::SetTimeZone(FX_TIMEZONE& tz) { |
| - m_tz = tz; |
| -} |
| - |
| -void CXFA_TimeZoneProvider::GetTimeZone(FX_TIMEZONE& tz) { |
| +void CXFA_TimeZoneProvider::GetTimeZone(FX_TIMEZONE& tz) const { |
| tz = m_tz; |
| } |