Chromium Code Reviews| Index: Source/core/css/FontFaceCache.cpp |
| diff --git a/Source/core/css/FontFaceCache.cpp b/Source/core/css/FontFaceCache.cpp |
| index a85e9fa38b717455679aedeec71e2b3a1d82f5d8..aa2463dbf39ed9dcbfaeddd0b6575b9e479c13e5 100644 |
| --- a/Source/core/css/FontFaceCache.cpp |
| +++ b/Source/core/css/FontFaceCache.cpp |
| @@ -58,13 +58,13 @@ void FontFaceCache::addFontFace(CSSFontSelector* cssFontSelector, PassRefPtr<Fon |
| { |
| RefPtr<FontFace> fontFace = prpFontFace; |
| - OwnPtr<TraitsMap>& familyFontFaces = m_fontFaces.add(fontFace->family(), nullptr).storedValue->value; |
| + TraitsMap* familyFontFaces = m_fontFaces.get(fontFace->family()); |
| if (!familyFontFaces) |
| - familyFontFaces = adoptPtr(new TraitsMap); |
| + familyFontFaces = m_fontFaces.set(fontFace->family(), adoptPtrWillBeNoop(new TraitsMap)).storedValue->value; |
| - RefPtr<CSSSegmentedFontFace>& segmentedFontFace = familyFontFaces->add(fontFace->traits().mask(), nullptr).storedValue->value; |
| + CSSSegmentedFontFace* segmentedFontFace = familyFontFaces->get(fontFace->traits().mask()); |
| if (!segmentedFontFace) |
| - segmentedFontFace = CSSSegmentedFontFace::create(cssFontSelector, fontFace->traits()); |
| + segmentedFontFace = familyFontFaces->add(fontFace->traits().mask(), CSSSegmentedFontFace::create(cssFontSelector, fontFace->traits())).storedValue->value; |
|
haraken
2014/04/08 12:59:59
You can use set() instead of add().
wibling-chromium
2014/04/08 14:03:19
Done.
|
| segmentedFontFace->addFontFace(fontFace, cssConnected); |
| if (cssConnected) |
| @@ -92,7 +92,7 @@ void FontFaceCache::removeFontFace(FontFace* fontFace, bool cssConnected) |
| TraitsMap::iterator familyFontFacesIter = familyFontFaces->find(fontFace->traits().mask()); |
| if (familyFontFacesIter == familyFontFaces->end()) |
| return; |
| - RefPtr<CSSSegmentedFontFace> segmentedFontFace = familyFontFacesIter->value; |
| + RefPtrWillBeRawPtr<CSSSegmentedFontFace> segmentedFontFace = familyFontFacesIter->value; |
| segmentedFontFace->removeFontFace(fontFace); |
| if (segmentedFontFace->isEmpty()) { |
| @@ -193,12 +193,12 @@ CSSSegmentedFontFace* FontFaceCache::get(const FontDescription& fontDescription, |
| if (!familyFontFaces || familyFontFaces->isEmpty()) |
| return 0; |
| - OwnPtr<TraitsMap>& segmentedFontFaceCache = m_fonts.add(family, nullptr).storedValue->value; |
| + OwnPtrWillBeMember<TraitsMap>& segmentedFontFaceCache = m_fonts.add(family, nullptr).storedValue->value; |
| if (!segmentedFontFaceCache) |
| - segmentedFontFaceCache = adoptPtr(new TraitsMap); |
| + segmentedFontFaceCache = adoptPtrWillBeNoop(new TraitsMap); |
|
haraken
2014/04/08 12:59:59
Let's use the get/set pattern for safety here too.
wibling-chromium
2014/04/08 14:03:19
Done.
|
| FontTraits traits = fontDescription.traits(); |
| - RefPtr<CSSSegmentedFontFace>& face = segmentedFontFaceCache->add(traits.mask(), nullptr).storedValue->value; |
| + RefPtrWillBeMember<CSSSegmentedFontFace>& face = segmentedFontFaceCache->add(traits.mask(), nullptr).storedValue->value; |
|
haraken
2014/04/08 12:59:59
Let's use the get/set pattern for safety.
wibling-chromium
2014/04/08 14:03:19
Done.
|
| if (!face) { |
| for (TraitsMap::const_iterator i = familyFontFaces->begin(); i != familyFontFaces->end(); ++i) { |
| CSSSegmentedFontFace* candidate = i->value.get(); |
| @@ -214,4 +214,10 @@ CSSSegmentedFontFace* FontFaceCache::get(const FontDescription& fontDescription, |
| return face.get(); |
| } |
| +void FontFaceCache::trace(Visitor* visitor) |
| +{ |
| + visitor->trace(m_fontFaces); |
| + visitor->trace(m_fonts); |
| +} |
| + |
| } |