void FontFaceCache::removeFontFace(FontFace* fontFace, bool cssConnected) { FamilyToTraitsMap::iterator fontFacesIter = m_fontFaces.find(fontFace->family()); if (fontFacesIter == m_fontFaces.end()) return; TraitsMap* familyFontFaces = fontFacesIter->value.get(); TraitsMap::iterator familyFontFacesIter = familyFontFaces->find(fontFace->traits().bitfield()); if (familyFontFacesIter == familyFontFaces->end()) return; RawPtr<CSSSegmentedFontFace> segmentedFontFace = familyFontFacesIter->value; segmentedFontFace->removeFontFace(fontFace); if (segmentedFontFace->isEmpty()) { familyFontFaces->remove(familyFontFacesIter); if (familyFontFaces->isEmpty()) m_fontFaces.remove(fontFacesIter); } m_fonts.remove(fontFace->family()); if (cssConnected) m_cssConnectedFontFaces.remove(fontFace); ++m_version; }