Index: chrome/common/time_format.cc |
diff --git a/chrome/common/time_format.cc b/chrome/common/time_format.cc |
index c62f4f58e937f31d00ef34cde8da632b5be8bfd1..9de3a402302d947e5271e1705309694ba116c337 100644 |
--- a/chrome/common/time_format.cc |
+++ b/chrome/common/time_format.cc |
@@ -7,9 +7,9 @@ |
#include <vector> |
#include "app/l10n_util.h" |
+#include "base/lazy_instance.h" |
#include "base/logging.h" |
#include "base/scoped_ptr.h" |
-#include "base/singleton.h" |
#include "base/stl_util-inl.h" |
#include "base/string16.h" |
#include "base/time.h" |
@@ -168,8 +168,7 @@ class TimeFormatter { |
STLDeleteContainerPointers(time_elapsed_formatter_.begin(), |
time_elapsed_formatter_.end()); |
} |
- friend class Singleton<TimeFormatter>; |
- friend struct DefaultSingletonTraits<TimeFormatter>; |
+ friend struct base::DefaultLazyInstanceTraits<TimeFormatter>; |
std::vector<icu::PluralFormat*> short_formatter_; |
std::vector<icu::PluralFormat*> time_left_formatter_; |
@@ -182,6 +181,9 @@ class TimeFormatter { |
DISALLOW_COPY_AND_ASSIGN(TimeFormatter); |
}; |
+static base::LazyInstance<TimeFormatter> g_time_formatter( |
+ base::LINKER_INITIALIZED); |
+ |
void TimeFormatter::BuildFormats( |
FormatType format_type, std::vector<icu::PluralFormat*>* time_formats) { |
static const icu::UnicodeString kKeywords[] = { |
@@ -253,8 +255,6 @@ icu::PluralFormat* TimeFormatter::createFallbackFormat( |
return format; |
} |
-Singleton<TimeFormatter> time_formatter; |
- |
static string16 FormatTimeImpl(const TimeDelta& delta, FormatType format_type) { |
if (delta.ToInternalValue() < 0) { |
NOTREACHED() << "Negative duration"; |
@@ -264,7 +264,7 @@ static string16 FormatTimeImpl(const TimeDelta& delta, FormatType format_type) { |
int number; |
const std::vector<icu::PluralFormat*>& formatters = |
- time_formatter->formatter(format_type); |
+ g_time_formatter.Get().formatter(format_type); |
UErrorCode error = U_ZERO_ERROR; |
icu::UnicodeString time_string; |