Index: skia/ext/vector_platform_device_linux.cc |
diff --git a/skia/ext/vector_platform_device_linux.cc b/skia/ext/vector_platform_device_linux.cc |
index 3d4559615ac4a2eed474d53c60a17978e535acdd..4bf5fd1908505a29a54d46c67dd8e8594f0dce6b 100644 |
--- a/skia/ext/vector_platform_device_linux.cc |
+++ b/skia/ext/vector_platform_device_linux.cc |
@@ -12,8 +12,8 @@ |
#include <map> |
+#include "base/lazy_instance.h" |
#include "base/logging.h" |
-#include "base/singleton.h" |
#include "skia/ext/bitmap_platform_device.h" |
#include "third_party/skia/include/core/SkFontHost.h" |
#include "third_party/skia/include/core/SkStream.h" |
@@ -29,6 +29,8 @@ struct FontInfo { |
}; |
typedef std::map<uint32_t, FontInfo> MapFontId2FontInfo; |
+static base::LazyInstance<MapFontId2FontInfo> g_map_font_id_to_font_info( |
+ base::LINKER_INITIALIZED); |
// Wrapper for FT_Library that handles initialization and cleanup, and allows |
// us to use a singleton. |
@@ -55,6 +57,7 @@ class FtLibrary { |
private: |
FT_Library library_; |
}; |
+static base::LazyInstance<FtLibrary> g_ft_library(base::LINKER_INITIALIZED); |
// Verify cairo surface after creation/modification. |
bool IsContextValid(cairo_t* context) { |
@@ -592,12 +595,12 @@ bool VectorPlatformDevice::SelectFontById(uint32_t font_id) { |
DCHECK(IsContextValid(context_)); |
DCHECK(SkFontHost::ValidFontID(font_id)); |
- FtLibrary* ft_library = Singleton<FtLibrary>::get(); |
+ FtLibrary* ft_library = g_ft_library.Pointer(); |
if (!ft_library->library()) |
return false; |
// Checks if we have a cache hit. |
- MapFontId2FontInfo* g_font_cache = Singleton<MapFontId2FontInfo>::get(); |
+ MapFontId2FontInfo* g_font_cache = g_map_font_id_to_font_info.Pointer(); |
DCHECK(g_font_cache); |
MapFontId2FontInfo::iterator it = g_font_cache->find(font_id); |
@@ -667,7 +670,7 @@ bool VectorPlatformDevice::SelectFontById(uint32_t font_id) { |
// static |
void VectorPlatformDevice::ClearFontCache() { |
- MapFontId2FontInfo* g_font_cache = Singleton<MapFontId2FontInfo>::get(); |
+ MapFontId2FontInfo* g_font_cache = g_map_font_id_to_font_info.Pointer(); |
DCHECK(g_font_cache); |
for (MapFontId2FontInfo::iterator it = g_font_cache->begin(); |