Bug 1584856 - patch 1 - Add some missing null-checks in dwrite font code. r=lsalzman

Differential Revision: https://phabricator.services.mozilla.com/D47788

--HG--
extra : moz-landing-system : lando
This commit is contained in:
Jonathan Kew 2019-10-01 20:35:28 +00:00
Родитель 2769c33faa
Коммит 39469143d6
2 изменённых файлов: 10 добавлений и 1 удалений

Просмотреть файл

@ -941,8 +941,14 @@ gfxFontEntry* gfxDWriteFontList::CreateFontEntry(
#endif
RefPtr<IDWriteFontFamily> family;
collection->GetFontFamily(aFamily->Index(), getter_AddRefs(family));
if (!family) {
return nullptr;
}
RefPtr<IDWriteFont> font;
family->GetFont(aFace->mIndex, getter_AddRefs(font));
if (!font) {
return nullptr;
}
nsAutoCString faceName;
HRESULT hr = GetDirectWriteFontName(font, faceName);
if (FAILED(hr)) {
@ -1001,7 +1007,7 @@ void gfxDWriteFontList::GetFacesInitDataForFamily(
for (unsigned i = 0; i < family->GetFontCount(); ++i) {
RefPtr<IDWriteFont> dwFont;
family->GetFont(i, getter_AddRefs(dwFont));
if (dwFont->GetSimulations() != DWRITE_FONT_SIMULATIONS_NONE) {
if (!dwFont || dwFont->GetSimulations() != DWRITE_FONT_SIMULATIONS_NONE) {
continue;
}
DWRITE_FONT_STYLE dwstyle = dwFont->GetStyle();

Просмотреть файл

@ -446,6 +446,9 @@ nsresult gfxPlatformFontList::InitFontList() {
if (StaticPrefs::gfx_e10s_font_list_shared_AtStartup() &&
!gfxPlatform::InSafeMode()) {
for (auto i = mFontEntries.Iter(); !i.Done(); i.Next()) {
if (!i.Data()) {
continue;
}
i.Data()->mShmemCharacterMap = nullptr;
i.Data()->mShmemFace = nullptr;
i.Data()->mFamilyName = NS_LITERAL_CSTRING("");