Reviewed by mjs.
authorkdecker <kdecker@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Mon, 15 Nov 2004 05:18:01 +0000 (05:18 +0000)
committerkdecker <kdecker@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Mon, 15 Nov 2004 05:18:01 +0000 (05:18 +0000)
fixed: <rdar://problem/3823038> LEAK: huge leak in DOM::HTMLElementImpl::createContextualFragment(DOM::DOMString const&, bool)

        * khtml/html/html_elementimpl.cpp:
        (HTMLElementImpl::setInnerHTML): uses the ref counting system to deallocate fragments instead of explicitly invoking a destructor.
        (HTMLElementImpl::setOuterHTML): function is responsible for derefing the fragment prior to returning. Now it does.

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

WebCore/ChangeLog-2005-08-23
WebCore/khtml/html/html_elementimpl.cpp

index 1ccf30c..1d35aed 100644 (file)
@@ -1,3 +1,13 @@
+2004-11-14  Kevin Decker  <kdecker@apple.com>
+
+        Reviewed by mjs.
+
+       fixed: <rdar://problem/3823038> LEAK: huge leak in DOM::HTMLElementImpl::createContextualFragment(DOM::DOMString const&, bool)
+
+        * khtml/html/html_elementimpl.cpp:
+        (HTMLElementImpl::setInnerHTML): uses the ref counting system to deallocate fragments instead of explicitly invoking a destructor.
+        (HTMLElementImpl::setOuterHTML): function is responsible for derefing the fragment prior to returning. Now it does.
+
 2004-11-13  Maciej Stachowiak  <mjs@apple.com>
 
         Reviewed by Kevin.
index a4f3fdb..c75f5c2 100644 (file)
@@ -806,7 +806,8 @@ bool HTMLElementImpl::setInnerHTML( const DOMString &html )
     removeChildren();
     int ec = 0;
     appendChild( fragment, ec );
-    delete fragment;
+    fragment->ref();
+    fragment->deref();
     return !ec;
 }
 
@@ -819,6 +820,8 @@ bool HTMLElementImpl::setOuterHTML( const DOMString &html )
     
     int ec = 0;
     parentNode()->replaceChild(fragment, this, ec);
+    fragment->ref();
+    fragment->deref();
     return !ec;
 }