| Index: Source/core/css/CSSSegmentedFontFace.cpp
|
| diff --git a/Source/core/css/CSSSegmentedFontFace.cpp b/Source/core/css/CSSSegmentedFontFace.cpp
|
| index 420368a25a25c494eb59d8f062b729abbc51ba01..2b00c80ba89cfe31cd470a535fc5a8ff945812c6 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,16 @@ 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);
|
| + visitor->visit(m_callbacks);
|
| +}
|
| +
|
| }
|
|
|