int SkStrLCSearch(const char*const* base, int count, const char target[], size_t len, size_t elemSize) { SkASSERT(target); SkAutoAsciiToLC tolc(target, len); return SkStrSearch(base, count, tolc.lc(), len, elemSize); }
static void add_name(const char name[], FamilyRec* family) { SkAutoAsciiToLC tolc(name); name = tolc.lc(); NameFamilyPair* list = gNameList.begin(); int count = gNameList.count(); int index = SkStrLCSearch(&list[0].fName, count, name, sizeof(list[0])); if (index < 0) { list = gNameList.insert(~index); list->construct(name, family); } }
SkFontStyleSet* onMatchFamily(const char familyName[]) const override { if (!familyName) { return nullptr; } SkAutoAsciiToLC tolc(familyName); for (int i = 0; i < fNameToFamilyMap.count(); ++i) { if (fNameToFamilyMap[i].name.equals(tolc.lc())) { return SkRef(fNameToFamilyMap[i].styleSet); } } // TODO: eventually we should not need to name fallback families. for (int i = 0; i < fFallbackNameToFamilyMap.count(); ++i) { if (fFallbackNameToFamilyMap[i].name.equals(tolc.lc())) { return SkRef(fFallbackNameToFamilyMap[i].styleSet); } } return nullptr; }