diff options
author | 2014-05-30 20:42:00 +0000 | |
---|---|---|
committer | 2014-05-30 20:42:00 +0000 | |
commit | 5a70945ddd036b8079987954123ff8f382c285af (patch) | |
tree | 3bb2d0ee55d6732edc13c04d4f63050deea157e3 /src/core/SkFontHost.cpp | |
parent | 2a5cd60bfff32c92cf44a8cfc3e8c017b9aee456 (diff) |
Port most uses of SkOnce to SkLazyPtr.
BUG=skia:
R=reed@google.com, mtklein@google.com
Author: mtklein@chromium.org
Review URL: https://codereview.chromium.org/304383005
git-svn-id: http://skia.googlecode.com/svn/trunk@15006 2bbb7eff-a529-9590-31e7-b0007b416f81
Diffstat (limited to 'src/core/SkFontHost.cpp')
-rw-r--r-- | src/core/SkFontHost.cpp | 17 |
1 files changed, 6 insertions, 11 deletions
diff --git a/src/core/SkFontHost.cpp b/src/core/SkFontHost.cpp index 9e7eeb182d..a16a8c42e0 100644 --- a/src/core/SkFontHost.cpp +++ b/src/core/SkFontHost.cpp @@ -6,7 +6,7 @@ */ #include "SkFontLCDConfig.h" -#include "SkOnce.h" +#include "SkLazyPtr.h" static SkFontLCDConfig::LCDOrientation gLCDOrientation = SkFontLCDConfig::kHorizontal_LCDOrientation; static SkFontLCDConfig::LCDOrder gLCDOrder = SkFontLCDConfig::kRGB_LCDOrder; @@ -198,19 +198,14 @@ SkTypeface* SkFontMgr::legacyCreateTypeface(const char familyName[], return this->onLegacyCreateTypeface(familyName, styleBits); } -void set_up_default(SkFontMgr** singleton) { - *singleton = SkFontMgr::Factory(); - // we never want to return NULL - if (NULL == *singleton) { - *singleton = SkNEW(SkEmptyFontMgr); - } +SkFontMgr* SkFontMgr::CreateDefault() { + SkFontMgr* fm = SkFontMgr::Factory(); + return fm ? fm : SkNEW(SkEmptyFontMgr); } SkFontMgr* SkFontMgr::RefDefault() { - static SkFontMgr* gFM = NULL; - SK_DECLARE_STATIC_ONCE(once); - SkOnce(&once, set_up_default, &gFM); - return SkRef(gFM); + SK_DECLARE_STATIC_LAZY_PTR(SkFontMgr, singleton, CreateDefault); + return SkRef(singleton.get()); } ////////////////////////////////////////////////////////////////////////// |