Reviewed by Oliver Hunt.
authormitz@apple.com <mitz@apple.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Tue, 8 Jan 2008 08:04:16 +0000 (08:04 +0000)
committermitz@apple.com <mitz@apple.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Tue, 8 Jan 2008 08:04:16 +0000 (08:04 +0000)
        - fix leaks seen on the build bot

        * css/CSSFontSelector.cpp:
        (WebCore::CSSFontSelector::addFontFaceRule): Avoid creating a
        CSSFontFaceSource for SVG font-face elements going into an
        SVGCSSFontFace because it just leaks them. Avoid adding SVG font-
        face elements to a CSSFontFace because it will not work as expected.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@29290 268f45cc-cd09-0410-ab3c-d52691b4dbfc

WebCore/ChangeLog
WebCore/css/CSSFontSelector.cpp

index f20f106654ee502399f4c697826f587f68ef1462..d6901dc79c18f61067f1fd0df5dab6fab577c50d 100644 (file)
@@ -1,3 +1,15 @@
+2008-01-07  Dan Bernstein  <mitz@apple.com>
+
+        Reviewed by Oliver Hunt.
+
+        - fix leaks seen on the build bot
+
+        * css/CSSFontSelector.cpp:
+        (WebCore::CSSFontSelector::addFontFaceRule): Avoid creating a
+        CSSFontFaceSource for SVG font-face elements going into an
+        SVGCSSFontFace because it just leaks them. Avoid adding SVG font-
+        face elements to a CSSFontFace because it will not work as expected.
+
 2008-01-07  Mark Rowe  <mrowe@apple.com>
 
         Tiger build fix.
index 7f83a42371210f99b84f51a240f913a4340abac4..5910c9f9a4297e3e9f2abdfb01f073cb201f8df7 100644 (file)
@@ -162,7 +162,10 @@ void CSSFontSelector::addFontFaceRule(const CSSFontFaceRule* fontFaceRule)
             // SVG Fonts support (internal fonts, living within the document)
             svgFontFaceElement = item->svgFontFaceElement();
             if (svgFontFaceElement) {
-                source = new CSSFontFaceSource(family);
+                // FIXME: If fontFace is not 0, it means that it is a CSSFontFace rather than a SVGCSSFontFace
+                // and therefore does not support SVG font-face elements, so we just skip this item.
+                if (fontFace)
+                    continue;
                 foundLocal = true;
             }
 #endif