2007-10-23 Eric Seidel <eric@webkit.org>
authoreseidel <eseidel@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Tue, 23 Oct 2007 09:44:06 +0000 (09:44 +0000)
committereseidel <eseidel@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Tue, 23 Oct 2007 09:44:06 +0000 (09:44 +0000)
        Reviewed by Mark Rowe.

        Fix leaks seen on TOT from new font-face code.

        * ksvg2/svg/SVGFontFaceElement.cpp:
        (WebCore::SVGFontFaceElement::rebuildFontFace): use a stack allocated CSSProperty instead of mallocing

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

WebCore/ChangeLog
WebCore/ksvg2/svg/SVGFontFaceElement.cpp

index 20520ca..8e2a431 100644 (file)
@@ -1,5 +1,14 @@
 2007-10-23  Eric Seidel  <eric@webkit.org>
 
+        Reviewed by Mark Rowe.
+
+        Fix leaks seen on TOT from new font-face code.
+
+        * ksvg2/svg/SVGFontFaceElement.cpp:
+        (WebCore::SVGFontFaceElement::rebuildFontFace): use a stack allocated CSSProperty instead of mallocing
+
+2007-10-23  Eric Seidel  <eric@webkit.org>
+
         Build fix only, no review.
 
         Sacrifice three virgin hours upon the altar of the heathen XCode gods
index df666ec..a358753 100644 (file)
@@ -147,8 +147,11 @@ void SVGFontFaceElement::rebuildFontFace()
     if (parentNode() && parentNode()->localName() == "font") // SVGNames::fontTag isn't generated yet
         return; // this font-face applies to its parent font, which we ignore.
     else if (srcElement) {
-        CSSProperty* srcProperty = new CSSProperty(CSS_PROP_SRC, srcElement->srcValue());
-        m_styleDeclaration->addParsedProperties(&srcProperty, 1);
+        // This is the only class (other than CSSParser) to create CSSValue objects and set them on the CSSStyleDeclaration manually
+        // we use the addParsedProperties method, and fake having an array of CSSProperty pointers.
+        CSSProperty srcProperty(CSS_PROP_SRC, srcElement->srcValue());
+        const CSSProperty* srcPropertyRef = &srcProperty;
+        m_styleDeclaration->addParsedProperties(&srcPropertyRef, 1);
     }
     
     document()->updateStyleSelector();