Index: src/core/SkFontMgr.cpp |
diff --git a/src/core/SkFontMgr.cpp b/src/core/SkFontMgr.cpp |
index 3190825c0fd4ca9d0bcd7378c877b21649ca1104..7c06690d2e297e0892cbeaf685e100c6e43fa974 100644 |
--- a/src/core/SkFontMgr.cpp |
+++ b/src/core/SkFontMgr.cpp |
@@ -7,7 +7,7 @@ |
#include "SkFontDescriptor.h" |
#include "SkFontMgr.h" |
-#include "SkOncePtr.h" |
+#include "SkLazyPtr.h" |
#include "SkStream.h" |
#include "SkTypes.h" |
@@ -158,10 +158,14 @@ |
return this->onLegacyCreateTypeface(familyName, styleBits); |
} |
-SK_DECLARE_STATIC_ONCE_PTR(SkFontMgr, singleton); |
+// As a template argument this must have external linkage. |
+SkFontMgr* sk_fontmgr_create_default() { |
+ SkFontMgr* fm = SkFontMgr::Factory(); |
+ return fm ? fm : new SkEmptyFontMgr; |
+} |
+ |
+SK_DECLARE_STATIC_LAZY_PTR(SkFontMgr, singleton, sk_fontmgr_create_default); |
+ |
SkFontMgr* SkFontMgr::RefDefault() { |
- return SkRef(singleton.get([]{ |
- SkFontMgr* fm = SkFontMgr::Factory(); |
- return fm ? fm : new SkEmptyFontMgr; |
- })); |
+ return SkRef(singleton.get()); |
} |