aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/ports
diff options
context:
space:
mode:
Diffstat (limited to 'src/ports')
-rw-r--r--src/ports/SkFontConfigInterface_direct.cpp9
-rw-r--r--src/ports/SkFontHost_fontconfig.cpp4
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);
}
}