| 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;
|
|
|