| Index: src/ports/SkFontHost_mac.cpp
|
| diff --git a/src/ports/SkFontHost_mac.cpp b/src/ports/SkFontHost_mac.cpp
|
| index 04af69660822236b5760f21ec2518282ff255e1d..ac0e365e2ef1658e04349a18b76f1cf4a579e43f 100755
|
| --- a/src/ports/SkFontHost_mac.cpp
|
| +++ b/src/ports/SkFontHost_mac.cpp
|
| @@ -2208,21 +2208,14 @@ private:
|
| };
|
|
|
| class SkFontMgr_Mac : public SkFontMgr {
|
| - int fCount;
|
| CFArrayRef fNames;
|
| + int fCount;
|
|
|
| CFStringRef stringAt(int index) const {
|
| SkASSERT((unsigned)index < (unsigned)fCount);
|
| return (CFStringRef)CFArrayGetValueAtIndex(fNames, index);
|
| }
|
|
|
| - void lazyInit() {
|
| - if (NULL == fNames) {
|
| - fNames = SkCTFontManagerCopyAvailableFontFamilyNames();
|
| - fCount = fNames ? SkToInt(CFArrayGetCount(fNames)) : 0;
|
| - }
|
| - }
|
| -
|
| static SkFontStyleSet* CreateSet(CFStringRef cfFamilyName) {
|
| AutoCFRelease<CFMutableDictionaryRef> cfAttr(
|
| CFDictionaryCreateMutable(kCFAllocatorDefault, 0,
|
| @@ -2237,20 +2230,20 @@ class SkFontMgr_Mac : public SkFontMgr {
|
| }
|
|
|
| public:
|
| - SkFontMgr_Mac() : fCount(0), fNames(NULL) {}
|
| + SkFontMgr_Mac()
|
| + : fNames(SkCTFontManagerCopyAvailableFontFamilyNames())
|
| + , fCount(fNames ? SkToInt(CFArrayGetCount(fNames)) : 0) {}
|
|
|
| virtual ~SkFontMgr_Mac() {
|
| CFSafeRelease(fNames);
|
| }
|
|
|
| protected:
|
| - virtual int onCountFamilies() SK_OVERRIDE {
|
| - this->lazyInit();
|
| + virtual int onCountFamilies() const SK_OVERRIDE {
|
| return fCount;
|
| }
|
|
|
| - virtual void onGetFamilyName(int index, SkString* familyName) SK_OVERRIDE {
|
| - this->lazyInit();
|
| + virtual void onGetFamilyName(int index, SkString* familyName) const SK_OVERRIDE {
|
| if ((unsigned)index < (unsigned)fCount) {
|
| CFStringToSkString(this->stringAt(index), familyName);
|
| } else {
|
| @@ -2258,31 +2251,30 @@ protected:
|
| }
|
| }
|
|
|
| - virtual SkFontStyleSet* onCreateStyleSet(int index) SK_OVERRIDE {
|
| - this->lazyInit();
|
| + virtual SkFontStyleSet* onCreateStyleSet(int index) const SK_OVERRIDE {
|
| if ((unsigned)index >= (unsigned)fCount) {
|
| return NULL;
|
| }
|
| return CreateSet(this->stringAt(index));
|
| }
|
|
|
| - virtual SkFontStyleSet* onMatchFamily(const char familyName[]) SK_OVERRIDE {
|
| + virtual SkFontStyleSet* onMatchFamily(const char familyName[]) const SK_OVERRIDE {
|
| AutoCFRelease<CFStringRef> cfName(make_CFString(familyName));
|
| return CreateSet(cfName);
|
| }
|
|
|
| virtual SkTypeface* onMatchFamilyStyle(const char familyName[],
|
| - const SkFontStyle&) SK_OVERRIDE {
|
| + const SkFontStyle&) const SK_OVERRIDE {
|
| return NULL;
|
| }
|
|
|
| virtual SkTypeface* onMatchFaceStyle(const SkTypeface* familyMember,
|
| - const SkFontStyle&) SK_OVERRIDE {
|
| + const SkFontStyle&) const SK_OVERRIDE {
|
| return NULL;
|
| }
|
|
|
| virtual SkTypeface* onCreateFromData(SkData* data,
|
| - int ttcIndex) SK_OVERRIDE {
|
| + int ttcIndex) const SK_OVERRIDE {
|
| AutoCFRelease<CGDataProviderRef> pr(SkCreateDataProviderFromData(data));
|
| if (NULL == pr) {
|
| return NULL;
|
| @@ -2291,7 +2283,7 @@ protected:
|
| }
|
|
|
| virtual SkTypeface* onCreateFromStream(SkStream* stream,
|
| - int ttcIndex) SK_OVERRIDE {
|
| + int ttcIndex) const SK_OVERRIDE {
|
| AutoCFRelease<CGDataProviderRef> pr(SkCreateDataProviderFromStream(stream));
|
| if (NULL == pr) {
|
| return NULL;
|
| @@ -2300,7 +2292,7 @@ protected:
|
| }
|
|
|
| virtual SkTypeface* onCreateFromFile(const char path[],
|
| - int ttcIndex) SK_OVERRIDE {
|
| + int ttcIndex) const SK_OVERRIDE {
|
| AutoCFRelease<CGDataProviderRef> pr(CGDataProviderCreateWithFilename(path));
|
| if (NULL == pr) {
|
| return NULL;
|
| @@ -2309,7 +2301,7 @@ protected:
|
| }
|
|
|
| virtual SkTypeface* onLegacyCreateTypeface(const char familyName[],
|
| - unsigned styleBits) SK_OVERRIDE {
|
| + unsigned styleBits) const SK_OVERRIDE {
|
| return create_typeface(NULL, familyName, (SkTypeface::Style)styleBits);
|
| }
|
| };
|
|
|