diff options
author | mtklein <mtklein@chromium.org> | 2015-09-09 06:48:29 -0700 |
---|---|---|
committer | Commit bot <commit-bot@chromium.org> | 2015-09-09 06:48:29 -0700 |
commit | a1254acdb344174e761f5061c820559dab64a74c (patch) | |
tree | e7337fb34009c082ae4887e0eb91e5027e100ba4 /src/core/SkFontMgr.cpp | |
parent | a5783aeff042ccaf517e50dee3660a4925f5f694 (diff) |
Port uses of SkLazyPtr to SkOncePtr.
This gives SkOncePtr a non-trivial destructor that uses std::default_delete
by default. This is overrideable, as seen in SkColorTable.
SK_DECLARE_STATIC_ONCE_PTR still just leaves its pointers hanging at EOP.
BUG=skia:
No public API changes.
TBR=reed@google.com
Review URL: https://codereview.chromium.org/1322933005
Diffstat (limited to 'src/core/SkFontMgr.cpp')
-rw-r--r-- | src/core/SkFontMgr.cpp | 16 |
1 files changed, 6 insertions, 10 deletions
diff --git a/src/core/SkFontMgr.cpp b/src/core/SkFontMgr.cpp index 7c06690d2e..3190825c0f 100644 --- a/src/core/SkFontMgr.cpp +++ b/src/core/SkFontMgr.cpp @@ -7,7 +7,7 @@ #include "SkFontDescriptor.h" #include "SkFontMgr.h" -#include "SkLazyPtr.h" +#include "SkOncePtr.h" #include "SkStream.h" #include "SkTypes.h" @@ -158,14 +158,10 @@ SkTypeface* SkFontMgr::legacyCreateTypeface(const char familyName[], return this->onLegacyCreateTypeface(familyName, styleBits); } -// 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); - +SK_DECLARE_STATIC_ONCE_PTR(SkFontMgr, singleton); SkFontMgr* SkFontMgr::RefDefault() { - return SkRef(singleton.get()); + return SkRef(singleton.get([]{ + SkFontMgr* fm = SkFontMgr::Factory(); + return fm ? fm : new SkEmptyFontMgr; + })); } |