summaryrefslogtreecommitdiff
path: root/absl/time/internal/cctz/src/time_zone_if.cc
diff options
context:
space:
mode:
authorGravatar Abseil Team <absl-team@google.com>2023-06-28 08:11:49 -0700
committerGravatar Copybara-Service <copybara-worker@google.com>2023-06-28 08:12:34 -0700
commit17014064a4ea367952eb4a595796f48c688c1467 (patch)
tree73027b56fab06c316693049e19010e774fb680ed /absl/time/internal/cctz/src/time_zone_if.cc
parentd65595c8dd994b47b7fdfdf9427bb546c577467b (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.cc12
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.