diff options
Diffstat (limited to 'WebCore/css/CSSSegmentedFontFace.cpp')
-rw-r--r-- | WebCore/css/CSSSegmentedFontFace.cpp | 19 |
1 files changed, 6 insertions, 13 deletions
diff --git a/WebCore/css/CSSSegmentedFontFace.cpp b/WebCore/css/CSSSegmentedFontFace.cpp index b13dd9c..bda29f0 100644 --- a/WebCore/css/CSSSegmentedFontFace.cpp +++ b/WebCore/css/CSSSegmentedFontFace.cpp @@ -59,24 +59,15 @@ void CSSSegmentedFontFace::pruneTable() m_fontDataTable.clear(); } -bool CSSSegmentedFontFace::isLoaded() const -{ - unsigned size = m_fontFaces.size(); - for (unsigned i = 0; i < size; i++) { - if (!m_fontFaces[i]->isLoaded()) - return false; - } - return true; -} - bool CSSSegmentedFontFace::isValid() const { + // Valid if at least one font face is valid. unsigned size = m_fontFaces.size(); for (unsigned i = 0; i < size; i++) { - if (!m_fontFaces[i]->isValid()) - return false; + if (m_fontFaces[i]->isValid()) + return true; } - return true; + return false; } void CSSSegmentedFontFace::fontLoaded(CSSFontFace*) @@ -107,6 +98,8 @@ FontData* CSSSegmentedFontFace::getFontData(const FontDescription& fontDescripti unsigned size = m_fontFaces.size(); for (unsigned i = 0; i < size; i++) { + if (!m_fontFaces[i]->isValid()) + continue; FontTraitsMask traitsMask = m_fontFaces[i]->traitsMask(); bool syntheticBold = !(traitsMask & (FontWeight600Mask | FontWeight700Mask | FontWeight800Mask | FontWeight900Mask)) && (desiredTraitsMask & (FontWeight600Mask | FontWeight700Mask | FontWeight800Mask | FontWeight900Mask)); bool syntheticItalic = !(traitsMask & FontStyleItalicMask) && (desiredTraitsMask & FontStyleItalicMask); |