diff options
Diffstat (limited to 'src/ports')
-rw-r--r-- | src/ports/SkFontConfigInterface_direct.cpp | 9 | ||||
-rw-r--r-- | src/ports/SkFontHost_fontconfig.cpp | 4 |
2 files changed, 8 insertions, 5 deletions
diff --git a/src/ports/SkFontConfigInterface_direct.cpp b/src/ports/SkFontConfigInterface_direct.cpp index a9e1f5ea02..83e01c1f1a 100644 --- a/src/ports/SkFontConfigInterface_direct.cpp +++ b/src/ports/SkFontConfigInterface_direct.cpp @@ -32,9 +32,12 @@ private: SkMutex mutex_; }; -SkFontConfigInterface* SkCreateDirectFontConfigInterface(); -SkFontConfigInterface* SkCreateDirectFontConfigInterface() { - return SkNEW(SkFontConfigInterfaceDirect); +SkFontConfigInterface* SkFontConfigInterface::GetSingletonDirectInterface() { + static SkFontConfigInterface* gDirect; + if (NULL == gDirect) { + gDirect = new SkFontConfigInterfaceDirect; + } + return gDirect; } namespace { diff --git a/src/ports/SkFontHost_fontconfig.cpp b/src/ports/SkFontHost_fontconfig.cpp index a254d360bd..28a938e7f6 100644 --- a/src/ports/SkFontHost_fontconfig.cpp +++ b/src/ports/SkFontHost_fontconfig.cpp @@ -41,8 +41,8 @@ static SkFontConfigInterface* RefFCI() { if (fci) { return fci; } - fci = SkCreateDirectFontConfigInterface(); - SkFontConfigInterface::SetGlobal(fci)->unref(); + fci = SkFontConfigInterface::GetSingletonDirectInterface(); + SkFontConfigInterface::SetGlobal(fci); } } |