Reviewed by Vicki.
authordarin <darin@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Fri, 3 Dec 2004 21:01:53 +0000 (21:01 +0000)
committerdarin <darin@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Fri, 3 Dec 2004 21:01:53 +0000 (21:01 +0000)
        - fixed <rdar://problem/3901109> REGRESSION (171-172): repro crash in DOM::NodeImpl::setChanged at chick-fil-a.com

        * khtml/css/css_valueimpl.cpp: (DOM::CSSMutableStyleDeclarationImpl::CSSMutableStyleDeclarationImpl):
        Added missing initialization for base class and node pointer.

        - fixed a few places that could leave dangling node pointers

        * khtml/html/html_baseimpl.cpp: (HTMLBodyElementImpl::~HTMLBodyElementImpl):
        Clear out the node pointer when the node is destroyed.
        * khtml/html/html_elementimpl.cpp: (HTMLElementImpl::~HTMLElementImpl): Ditto.

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

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

index d47db35..794d646 100644 (file)
@@ -1,3 +1,18 @@
+2004-12-03  Darin Adler  <darin@apple.com>
+
+        Reviewed by Vicki.
+
+        - fixed <rdar://problem/3901109> REGRESSION (171-172): repro crash in DOM::NodeImpl::setChanged at chick-fil-a.com
+
+        * khtml/css/css_valueimpl.cpp: (DOM::CSSMutableStyleDeclarationImpl::CSSMutableStyleDeclarationImpl):
+        Added missing initialization for base class and node pointer.
+
+        - fixed a few places that could leave dangling node pointers
+
+        * khtml/html/html_baseimpl.cpp: (HTMLBodyElementImpl::~HTMLBodyElementImpl):
+        Clear out the node pointer when the node is destroyed.
+        * khtml/html/html_elementimpl.cpp: (HTMLElementImpl::~HTMLElementImpl): Ditto.
+
 2004-12-03  Chris Blumenberg  <cblu@apple.com>
 
        Fix for performance regression. My original patch added a signal for passing the data of a resource to its WebCore cache object. This patch passes the data with the preexisting "finished" symbol so we make less calls. 
index bdd324a..92f2e9d 100644 (file)
@@ -80,6 +80,7 @@ CSSMutableStyleDeclarationImpl::CSSMutableStyleDeclarationImpl(CSSRuleImpl *pare
 }
 
 CSSMutableStyleDeclarationImpl::CSSMutableStyleDeclarationImpl(CSSRuleImpl *parent, const CSSProperty * const *properties, int numProperties)
+    : CSSStyleDeclarationImpl(parent), m_node(0)
 {
     for (int i = 0; i < numProperties; ++i)
         m_values.append(*properties[i]);
index 0c06599..0515700 100644 (file)
@@ -56,6 +56,7 @@ HTMLBodyElementImpl::HTMLBodyElementImpl(DocumentPtr *doc)
 HTMLBodyElementImpl::~HTMLBodyElementImpl()
 {
     if (m_linkDecl) {
+        m_linkDecl->setNode(0);
         m_linkDecl->setParent(0);
         m_linkDecl->deref();
     }
index 1e7ccf9..28d7606 100644 (file)
@@ -213,6 +213,7 @@ HTMLElementImpl::HTMLElementImpl(DocumentPtr *doc)
 HTMLElementImpl::~HTMLElementImpl()
 {
     if (m_inlineStyleDecl) {
+        m_inlineStyleDecl->setNode(0);
         m_inlineStyleDecl->setParent(0);
         m_inlineStyleDecl->deref();
     }