diff options
author | Abseil Team <absl-team@google.com> | 2023-06-28 08:11:49 -0700 |
---|---|---|
committer | Copybara-Service <copybara-worker@google.com> | 2023-06-28 08:12:34 -0700 |
commit | 17014064a4ea367952eb4a595796f48c688c1467 (patch) | |
tree | 73027b56fab06c316693049e19010e774fb680ed /absl/time/internal/cctz/src/time_zone_if.cc | |
parent | d65595c8dd994b47b7fdfdf9427bb546c577467b (diff) |
Rollback of CCTZ update due to crash in clang ObjcLink.
PiperOrigin-RevId: 544060862
Change-Id: I6ca631385826f6e10f6c3eeec1af532402d0b532
Diffstat (limited to 'absl/time/internal/cctz/src/time_zone_if.cc')
-rw-r--r-- | absl/time/internal/cctz/src/time_zone_if.cc | 12 |
1 files changed, 6 insertions, 6 deletions
diff --git a/absl/time/internal/cctz/src/time_zone_if.cc b/absl/time/internal/cctz/src/time_zone_if.cc index 0e65cd9e..1d44dde7 100644 --- a/absl/time/internal/cctz/src/time_zone_if.cc +++ b/absl/time/internal/cctz/src/time_zone_if.cc @@ -23,19 +23,19 @@ ABSL_NAMESPACE_BEGIN namespace time_internal { namespace cctz { -std::unique_ptr<TimeZoneIf> TimeZoneIf::UTC() { return TimeZoneInfo::UTC(); } - -std::unique_ptr<TimeZoneIf> TimeZoneIf::Make(const std::string& name) { +std::unique_ptr<TimeZoneIf> TimeZoneIf::Load(const std::string& name) { // Support "libc:localtime" and "libc:*" to access the legacy // localtime and UTC support respectively from the C library. // NOTE: The "libc:*" zones are internal, test-only interfaces, and // are subject to change/removal without notice. Do not use them. if (name.compare(0, 5, "libc:") == 0) { - return TimeZoneLibC::Make(name.substr(5)); + return std::unique_ptr<TimeZoneIf>(new TimeZoneLibC(name.substr(5))); } - // Otherwise use the "zoneinfo" implementation. - return TimeZoneInfo::Make(name); + // Otherwise use the "zoneinfo" implementation by default. + std::unique_ptr<TimeZoneInfo> tz(new TimeZoneInfo); + if (!tz->Load(name)) tz.reset(); + return std::unique_ptr<TimeZoneIf>(tz.release()); } // Defined out-of-line to avoid emitting a weak vtable in all TUs. |