Index: src/ports/SkFontMgr_android.cpp |
diff --git a/src/ports/SkFontMgr_android.cpp b/src/ports/SkFontMgr_android.cpp |
index c527551575f7b3ddd3cfe626751101102cab3792..4677a1f86d0a2a7e32f2450e3d0dc9b943c2f09d 100644 |
--- a/src/ports/SkFontMgr_android.cpp |
+++ b/src/ports/SkFontMgr_android.cpp |
@@ -138,7 +138,9 @@ void get_path_for_sys_fonts(const char* basePath, const SkString& name, SkString |
class SkFontStyleSet_Android : public SkFontStyleSet { |
public: |
- explicit SkFontStyleSet_Android(const FontFamily& family, const char* basePath) { |
+ explicit SkFontStyleSet_Android(const FontFamily& family, const char* basePath, |
+ const SkTypeface_FreeType::Scanner& scanner) |
+ { |
const SkString* cannonicalFamilyName = NULL; |
if (family.fNames.count() > 0) { |
cannonicalFamilyName = &family.fNames[0]; |
@@ -160,8 +162,7 @@ public: |
SkString familyName; |
SkFontStyle style; |
bool isFixedWidth; |
- if (!SkTypeface_FreeType::ScanFont(stream.get(), ttcIndex, |
- &familyName, &style, &isFixedWidth)) { |
+ if (!scanner.scanFont(stream.get(), ttcIndex, &familyName, &style, &isFixedWidth)) { |
DEBUG_FONT(("---- SystemFonts[%d] file=%s (INVALID)", i, pathName.c_str())); |
continue; |
} |
@@ -435,7 +436,7 @@ static SkTypeface_AndroidSystem* find_family_style_character( |
bool isFixedPitch; |
SkFontStyle style; |
SkString name; |
- if (!SkTypeface_FreeType::ScanFont(stream, ttcIndex, &name, &style, &isFixedPitch)) { |
+ if (!fScanner.scanFont(stream, ttcIndex, &name, &style, &isFixedPitch)) { |
return NULL; |
} |
return SkNEW_ARGS(SkTypeface_AndroidStream, (stream, ttcIndex, |
@@ -460,6 +461,8 @@ static SkTypeface_AndroidSystem* find_family_style_character( |
private: |
+ SkTypeface_FreeType::Scanner fScanner; |
+ |
SkTArray<SkAutoTUnref<SkFontStyleSet_Android>, true> fFontStyleSets; |
SkFontStyleSet* fDefaultFamily; |
SkTypeface* fDefaultTypeface; |
@@ -481,7 +484,8 @@ private: |
} |
} |
- SkFontStyleSet_Android* newSet = SkNEW_ARGS(SkFontStyleSet_Android, (family, basePath)); |
+ SkFontStyleSet_Android* newSet = |
+ SkNEW_ARGS(SkFontStyleSet_Android, (family, basePath, fScanner)); |
if (0 == newSet->count()) { |
SkDELETE(newSet); |
continue; |