Bug 1031187 - Part 1: Set mFamilyName eagerly on proxy and non-proxy gfxFontEntrys. r=jdaggett

This commit is contained in:
Cameron McCormack 2014-07-09 17:08:54 +10:00
parent 918c9b597f
commit 210c8d808e
3 changed files with 18 additions and 3 deletions

View File

@ -818,7 +818,11 @@ public:
{
aFontEntry->mIgnoreGDEF = true;
}
aFontEntry->mFamilyName = Name();
if (aFontEntry->mFamilyName.IsEmpty()) {
aFontEntry->mFamilyName = Name();
} else {
MOZ_ASSERT(aFontEntry->mFamilyName.Equals(Name()));
}
aFontEntry->mSkipDefaultFeatureSpaceCheck = mSkipDefaultFeatureSpaceCheck;
mAvailableFonts.AppendElement(aFontEntry);
}

View File

@ -355,6 +355,7 @@ gfxProxyFontEntry::LoadNext(gfxMixedFontFamily *aFamily,
uint32_t(mFontSet->mGeneration)));
fe->mFeatureSettings.AppendElements(mFeatureSettings);
fe->mLanguageOverride = mLanguageOverride;
fe->mFamilyName = mFamilyName;
// For src:local(), we don't care whether the request is from
// a private window as there's no issue of caching resources;
// local fonts are just available all the time.
@ -528,6 +529,7 @@ gfxProxyFontEntry::LoadFont(gfxMixedFontFamily *aFamily,
// newly-created font entry
fe->mFeatureSettings.AppendElements(mFeatureSettings);
fe->mLanguageOverride = mLanguageOverride;
fe->mFamilyName = mFamilyName;
StoreUserFontData(fe, mFontSet->GetPrivateBrowsing(), originalFullName,
&metadata, metaOrigLen);
#ifdef PR_LOGGING
@ -642,6 +644,7 @@ gfxUserFontSet::AddFontFace(const nsAString& aFamilyName,
aFeatureSettings,
aLanguageOverride,
aUnicodeRanges);
proxyEntry->mFamilyName = aFamilyName;
family->AddFontEntry(proxyEntry);
#ifdef PR_LOGGING
if (LOG_ENABLED()) {

View File

@ -103,7 +103,11 @@ public:
break;
}
}
aFontEntry->mFamilyName = Name();
if (aFontEntry->mFamilyName.IsEmpty()) {
aFontEntry->mFamilyName = Name();
} else {
MOZ_ASSERT(aFontEntry->mFamilyName.Equals(Name()));
}
ResetCharacterMap();
}
@ -118,7 +122,11 @@ public:
// Note that this may delete aProxyFontEntry, if there's no
// other reference to it except from its family.
mAvailableFonts[i] = aRealFontEntry;
aRealFontEntry->mFamilyName = Name();
if (aRealFontEntry->mFamilyName.IsEmpty()) {
aRealFontEntry->mFamilyName = Name();
} else {
MOZ_ASSERT(aRealFontEntry->mFamilyName.Equals(Name()));
}
break;
}
}