Index: src/core/SkTypefaceCache.cpp |
diff --git a/src/core/SkTypefaceCache.cpp b/src/core/SkTypefaceCache.cpp |
index cfa301ef39def299aa2abb801cec433daa3f2307..8adffe6a3a5cc6fa7c90ea8139cc1ab2d1537d3e 100644 |
--- a/src/core/SkTypefaceCache.cpp |
+++ b/src/core/SkTypefaceCache.cpp |
@@ -19,31 +19,19 @@ SkTypefaceCache::~SkTypefaceCache() { |
const Rec* curr = fArray.begin(); |
const Rec* stop = fArray.end(); |
while (curr < stop) { |
- if (curr->fStrong) { |
- curr->fFace->unref(); |
- } else { |
- curr->fFace->weak_unref(); |
- } |
+ curr->fFace->unref(); |
curr += 1; |
} |
} |
-void SkTypefaceCache::add(SkTypeface* face, |
- const SkFontStyle& requestedStyle, |
- bool strong) { |
+void SkTypefaceCache::add(SkTypeface* face, const SkFontStyle& requestedStyle) { |
if (fArray.count() >= TYPEFACE_CACHE_LIMIT) { |
this->purge(TYPEFACE_CACHE_LIMIT >> 2); |
} |
Rec* rec = fArray.append(); |
- rec->fFace = face; |
+ rec->fFace = SkRef(face); |
rec->fRequestedStyle = requestedStyle; |
- rec->fStrong = strong; |
- if (strong) { |
- face->ref(); |
- } else { |
- face->weak_ref(); |
- } |
} |
SkTypeface* SkTypefaceCache::findByID(SkFontID fontID) const { |
@@ -64,14 +52,7 @@ SkTypeface* SkTypefaceCache::findByProcAndRef(FindProc proc, void* ctx) const { |
while (curr < stop) { |
SkTypeface* currFace = curr->fFace; |
if (proc(currFace, curr->fRequestedStyle, ctx)) { |
- if (curr->fStrong) { |
- currFace->ref(); |
- return currFace; |
- } else if (currFace->try_ref()) { |
- return currFace; |
- } else { |
- //remove currFace from fArray? |
- } |
+ return SkRef(currFace); |
} |
curr += 1; |
} |
@@ -83,13 +64,8 @@ void SkTypefaceCache::purge(int numToPurge) { |
int i = 0; |
while (i < count) { |
SkTypeface* face = fArray[i].fFace; |
- bool strong = fArray[i].fStrong; |
- if ((strong && face->unique()) || (!strong && face->weak_expired())) { |
- if (strong) { |
- face->unref(); |
- } else { |
- face->weak_unref(); |
- } |
+ if (face->unique()) { |
+ face->unref(); |
fArray.remove(i); |
--count; |
if (--numToPurge == 0) { |
@@ -119,11 +95,9 @@ SkFontID SkTypefaceCache::NewFontID() { |
SK_DECLARE_STATIC_MUTEX(gMutex); |
-void SkTypefaceCache::Add(SkTypeface* face, |
- const SkFontStyle& requestedStyle, |
- bool strong) { |
+void SkTypefaceCache::Add(SkTypeface* face, const SkFontStyle& requestedStyle) { |
SkAutoMutexAcquire ama(gMutex); |
- Get().add(face, requestedStyle, strong); |
+ Get().add(face, requestedStyle); |
} |
SkTypeface* SkTypefaceCache::FindByID(SkFontID fontID) { |