Chromium Code Reviews| Index: Source/core/css/CSSSegmentedFontFace.cpp |
| diff --git a/Source/core/css/CSSSegmentedFontFace.cpp b/Source/core/css/CSSSegmentedFontFace.cpp |
| index 420368a25a25c494eb59d8f062b729abbc51ba01..f1647bbbc7de0ca27d4cedb1651289e132e46dd0 100644 |
| --- a/Source/core/css/CSSSegmentedFontFace.cpp |
| +++ b/Source/core/css/CSSSegmentedFontFace.cpp |
| @@ -37,6 +37,9 @@ |
| namespace WebCore { |
| +DEFINE_GC_TYPE_MARKER(CSSSegmentedFontFace); |
| +DEFINE_GC_TYPE_MARKER(CSSSegmentedFontFace::LoadFontCallback); |
| + |
| CSSSegmentedFontFace::CSSSegmentedFontFace(CSSFontSelector* fontSelector) |
| : m_fontSelector(fontSelector) |
| { |
| @@ -47,7 +50,7 @@ CSSSegmentedFontFace::~CSSSegmentedFontFace() |
| pruneTable(); |
| unsigned size = m_fontFaces.size(); |
| for (unsigned i = 0; i < size; i++) |
| - m_fontFaces[i]->removedFromSegmentedFontFace(this); |
| + m_fontFaces[i]->removedFromSegmentedFontFace(Handle<CSSSegmentedFontFace>(this)); |
| } |
| void CSSSegmentedFontFace::pruneTable() |
| @@ -70,26 +73,26 @@ bool CSSSegmentedFontFace::isValid() const |
| return false; |
| } |
| -void CSSSegmentedFontFace::fontLoaded(CSSFontFace*) |
| +void CSSSegmentedFontFace::fontLoaded(Handle<CSSFontFace>) |
| { |
| pruneTable(); |
| if (RuntimeEnabledFeatures::fontLoadEventsEnabled() && !isLoading()) { |
| - Vector<RefPtr<LoadFontCallback> > callbacks; |
| - m_callbacks.swap(callbacks); |
| - for (size_t index = 0; index < callbacks.size(); ++index) { |
| + CollectionRoot<Vector<Member<LoadFontCallback> > > callbacks; |
| + m_callbacks.swap(*callbacks); |
| + for (size_t index = 0; index < callbacks->size(); ++index) { |
| if (checkFont()) |
| - callbacks[index]->notifyLoaded(this); |
| + callbacks->at(index)->notifyLoaded(Handle<CSSSegmentedFontFace>(this)); |
| else |
| - callbacks[index]->notifyError(this); |
| + callbacks->at(index)->notifyError(Handle<CSSSegmentedFontFace>(this)); |
| } |
| } |
| } |
| -void CSSSegmentedFontFace::appendFontFace(PassRefPtr<CSSFontFace> fontFace) |
| +void CSSSegmentedFontFace::appendFontFace(Handle<CSSFontFace> fontFace) |
| { |
| pruneTable(); |
| - fontFace->addedToSegmentedFontFace(this); |
| + fontFace->addedToSegmentedFontFace(Handle<CSSSegmentedFontFace>(this)); |
| m_fontFaces.append(fontFace); |
| } |
| @@ -167,7 +170,7 @@ bool CSSSegmentedFontFace::checkFont() const |
| return true; |
| } |
| -void CSSSegmentedFontFace::loadFont(const FontDescription& fontDescription, PassRefPtr<LoadFontCallback> callback) |
| +void CSSSegmentedFontFace::loadFont(const FontDescription& fontDescription, Handle<LoadFontCallback> callback) |
| { |
| getFontData(fontDescription); // Kick off the load. |
| @@ -175,10 +178,15 @@ void CSSSegmentedFontFace::loadFont(const FontDescription& fontDescription, Pass |
| if (isLoading()) |
| m_callbacks.append(callback); |
| else if (checkFont()) |
| - callback->notifyLoaded(this); |
| + callback->notifyLoaded(Handle<CSSSegmentedFontFace>(this)); |
| else |
| - callback->notifyError(this); |
| + callback->notifyError(Handle<CSSSegmentedFontFace>(this)); |
| } |
| } |
| +void CSSSegmentedFontFace::accept(Visitor* visitor) const |
| +{ |
| + visitor->visit(m_fontFaces); |
|
zerny-google
2013/07/02 14:24:04
visit m_callbacks
haraken
2013/07/02 14:31:30
Done.
|
| +} |
| + |
| } |