aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/ports
diff options
context:
space:
mode:
Diffstat (limited to 'src/ports')
-rw-r--r--src/ports/SkFontConfigInterface_android.cpp3
-rw-r--r--src/ports/SkFontConfigInterface_direct.cpp10
-rw-r--r--src/ports/SkFontHost_fontconfig.cpp2
3 files changed, 10 insertions, 5 deletions
diff --git a/src/ports/SkFontConfigInterface_android.cpp b/src/ports/SkFontConfigInterface_android.cpp
index 20e6c5eb84..1f901b9fa9 100644
--- a/src/ports/SkFontConfigInterface_android.cpp
+++ b/src/ports/SkFontConfigInterface_android.cpp
@@ -155,7 +155,8 @@ static SkFontConfigInterfaceAndroid* getSingletonInterface() {
return gFontConfigInterface;
}
-SkFontConfigInterface* SkFontConfigInterface::GetSingletonDirectInterface() {
+SkFontConfigInterface* SkFontConfigInterface::GetSingletonDirectInterface(SkBaseMutex*) {
+ // Doesn't need passed-in mutex because getSingletonInterface() uses one
return getSingletonInterface();
}
diff --git a/src/ports/SkFontConfigInterface_direct.cpp b/src/ports/SkFontConfigInterface_direct.cpp
index dc9afbae1f..c0cfd8fdcf 100644
--- a/src/ports/SkFontConfigInterface_direct.cpp
+++ b/src/ports/SkFontConfigInterface_direct.cpp
@@ -124,9 +124,13 @@ private:
SkMutex mutex_;
};
-SkFontConfigInterface* SkFontConfigInterface::GetSingletonDirectInterface() {
- SK_DECLARE_STATIC_LAZY_PTR(SkFontConfigInterfaceDirect, direct);
- return direct.get();
+SkFontConfigInterface* SkFontConfigInterface::GetSingletonDirectInterface(SkBaseMutex* mutex) {
+ SkAutoMutexAcquire ac(mutex);
+ static SkFontConfigInterfaceDirect* singleton = NULL;
+ if (singleton == NULL) {
+ singleton = SkNEW(SkFontConfigInterfaceDirect);
+ }
+ return singleton;
}
///////////////////////////////////////////////////////////////////////////////
diff --git a/src/ports/SkFontHost_fontconfig.cpp b/src/ports/SkFontHost_fontconfig.cpp
index 07bfbd044c..8abf5cf7f0 100644
--- a/src/ports/SkFontHost_fontconfig.cpp
+++ b/src/ports/SkFontHost_fontconfig.cpp
@@ -50,7 +50,7 @@ static SkFontConfigInterface* RefFCI() {
if (fci) {
return fci;
}
- fci = SkFontConfigInterface::GetSingletonDirectInterface();
+ fci = SkFontConfigInterface::GetSingletonDirectInterface(&gFontConfigInterfaceMutex);
SkFontConfigInterface::SetGlobal(fci);
}
}