Reviewed by Adele.
authordarin <darin@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Fri, 7 Jul 2006 22:33:50 +0000 (22:33 +0000)
committerdarin <darin@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Fri, 7 Jul 2006 22:33:50 +0000 (22:33 +0000)
        - fixed a couple of storage leaks noticed by the buildbot

        * html/HTMLOptGroupElement.cpp: (WebCore::HTMLOptGroupElement::attach):
        Call deref on the style after calling setRenderStyle, since styleForRenderer
        returns us a "ref'd" RenderStyle object.
        * html/HTMLOptionElement.cpp: (WebCore::HTMLOptionElement::attach): Ditto.

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

WebCore/ChangeLog
WebCore/html/HTMLOptGroupElement.cpp
WebCore/html/HTMLOptionElement.cpp

index ee6ba9a734b763ccc6f304871737fd61340f76bc..94e8f1428c8b3dc9899d8d5c9ea84b01d60e3e44 100644 (file)
@@ -1,3 +1,14 @@
+2006-07-07  Darin Adler  <darin@apple.com>
+
+        Reviewed by Adele.
+
+        - fixed a couple of storage leaks noticed by the buildbot
+
+        * html/HTMLOptGroupElement.cpp: (WebCore::HTMLOptGroupElement::attach):
+        Call deref on the style after calling setRenderStyle, since styleForRenderer
+        returns us a "ref'd" RenderStyle object.
+        * html/HTMLOptionElement.cpp: (WebCore::HTMLOptionElement::attach): Ditto.
+
 2006-07-07  Darin Adler  <darin@apple.com>
 
         Reviewed by Adele.
index d9077ef62c3cb9bf6ff7f578b29e39bd57cda7ac..674ae18ee6ad27243750b9ba3f9abfce284a2dfa 100644 (file)
 #include "HTMLOptGroupElement.h"
 
 #include "Document.h"
-#include "cssstyleselector.h"
-#include "HTMLSelectElement.h"
 #include "HTMLNames.h"
+#include "HTMLSelectElement.h"
 #include "RenderMenuList.h"
+#include "cssstyleselector.h"
 
 namespace WebCore {
 
@@ -126,7 +126,9 @@ bool HTMLOptGroupElement::checkDTD(const Node* newChild)
 
 void HTMLOptGroupElement::attach()
 {
-    setRenderStyle(styleForRenderer(0));
+    RenderStyle* style = styleForRenderer(0);
+    setRenderStyle(style);
+    style->deref(document()->renderArena());
     HTMLGenericFormElement::attach();
 }
 
@@ -139,13 +141,12 @@ void HTMLOptGroupElement::detach()
     HTMLGenericFormElement::detach();
 }
 
-void HTMLOptGroupElement::setRenderStyle( RenderStyle* newStyle )
+void HTMLOptGroupElement::setRenderStyle(RenderStyle* newStyle)
 {
     RenderStyle* oldStyle = m_style;
     m_style = newStyle;
-     if (m_style)
-        m_style->ref();
-    
+    if (newStyle)
+        newStyle->ref();
     if (oldStyle)
         oldStyle->deref(document()->renderArena());
 }
index adc6a3b2b8b295853444b00ab3b4588359a1f97b..7aaf6cd132674590eda957665bc5e14f5cd36551 100644 (file)
 #include "HTMLOptionElement.h"
 
 #include "Document.h"
-#include "cssstyleselector.h"
 #include "ExceptionCode.h"
 #include "HTMLNames.h"
 #include "HTMLSelectElement.h"
 #include "RenderMenuList.h"
 #include "Text.h"
+#include "cssstyleselector.h"
 #include <wtf/Vector.h>
 
 namespace WebCore {
@@ -54,7 +54,9 @@ bool HTMLOptionElement::checkDTD(const Node* newChild)
 
 void HTMLOptionElement::attach()
 {
-    setRenderStyle(styleForRenderer(0));
+    RenderStyle* style = styleForRenderer(0);
+    setRenderStyle(style);
+    style->deref(document()->renderArena());
     HTMLGenericFormElement::attach();
 }
 
@@ -210,13 +212,12 @@ void HTMLOptionElement::setLabel(const String& value)
     setAttribute(labelAttr, value);
 }
 
-void HTMLOptionElement::setRenderStyle( RenderStyle* newStyle )
+void HTMLOptionElement::setRenderStyle(RenderStyle* newStyle)
 {
     RenderStyle* oldStyle = m_style;
     m_style = newStyle;
-     if (m_style)
-        m_style->ref();
-    
+    if (newStyle)
+        newStyle->ref();
     if (oldStyle)
         oldStyle->deref(document()->renderArena());
 }