[SCM] WebKit Debian packaging branch, debian/unstable, updated. debian/1.1.15-1-40151-g37bb677

hyatt hyatt at 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Sat Sep 26 06:30:51 UTC 2009


The following commit has been merged in the debian/unstable branch:
commit 92f58f499bebf3d414af89f8bfbdd2fcca983d27
Author: hyatt <hyatt at 268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Date:   Mon Aug 12 20:15:35 2002 +0000

    	Fix for the crash (assert) at mlb.com (3014322).  recalcStyle was
    	re-entrant, causing the render tree to be reconstructed
    	while in the process of being destroyed.
    
    	Also patched object frame to only fire load/unload if
    	render objects exist (since the plugin cannot load without
    	the render object initializing it anyway).
    
            * khtml/html/html_objectimpl.cpp:
            (HTMLObjectElementImpl::attach):
            (HTMLObjectElementImpl::detach):
            * khtml/xml/dom_docimpl.cpp:
            (DocumentImpl::DocumentImpl):
            (DocumentImpl::recalcStyle):
            * khtml/xml/dom_docimpl.h:
    
    
    git-svn-id: http://svn.webkit.org/repository/webkit/trunk@1800 268f45cc-cd09-0410-ab3c-d52691b4dbfc

diff --git a/WebCore/ChangeLog-2002-12-03 b/WebCore/ChangeLog-2002-12-03
index fee0427..ac0da17 100644
--- a/WebCore/ChangeLog-2002-12-03
+++ b/WebCore/ChangeLog-2002-12-03
@@ -1,3 +1,21 @@
+2002-08-12  David Hyatt  <hyatt at apple.com>
+
+	Fix for the crash (assert) at mlb.com (3014322).  recalcStyle was
+	re-entrant, causing the render tree to be reconstructed
+	while in the process of being destroyed.
+
+	Also patched object frame to only fire load/unload if
+	render objects exist (since the plugin cannot load without
+	the render object initializing it anyway).
+	
+        * khtml/html/html_objectimpl.cpp:
+        (HTMLObjectElementImpl::attach):
+        (HTMLObjectElementImpl::detach):
+        * khtml/xml/dom_docimpl.cpp:
+        (DocumentImpl::DocumentImpl):
+        (DocumentImpl::recalcStyle):
+        * khtml/xml/dom_docimpl.h:
+
 2002-08-12  Darin Adler  <darin at apple.com>
 
         * force-clean-timestamp: Need a full build because of KJS changes.
diff --git a/WebCore/ChangeLog-2003-10-25 b/WebCore/ChangeLog-2003-10-25
index fee0427..ac0da17 100644
--- a/WebCore/ChangeLog-2003-10-25
+++ b/WebCore/ChangeLog-2003-10-25
@@ -1,3 +1,21 @@
+2002-08-12  David Hyatt  <hyatt at apple.com>
+
+	Fix for the crash (assert) at mlb.com (3014322).  recalcStyle was
+	re-entrant, causing the render tree to be reconstructed
+	while in the process of being destroyed.
+
+	Also patched object frame to only fire load/unload if
+	render objects exist (since the plugin cannot load without
+	the render object initializing it anyway).
+	
+        * khtml/html/html_objectimpl.cpp:
+        (HTMLObjectElementImpl::attach):
+        (HTMLObjectElementImpl::detach):
+        * khtml/xml/dom_docimpl.cpp:
+        (DocumentImpl::DocumentImpl):
+        (DocumentImpl::recalcStyle):
+        * khtml/xml/dom_docimpl.h:
+
 2002-08-12  Darin Adler  <darin at apple.com>
 
         * force-clean-timestamp: Need a full build because of KJS changes.
diff --git a/WebCore/ChangeLog-2005-08-23 b/WebCore/ChangeLog-2005-08-23
index fee0427..ac0da17 100644
--- a/WebCore/ChangeLog-2005-08-23
+++ b/WebCore/ChangeLog-2005-08-23
@@ -1,3 +1,21 @@
+2002-08-12  David Hyatt  <hyatt at apple.com>
+
+	Fix for the crash (assert) at mlb.com (3014322).  recalcStyle was
+	re-entrant, causing the render tree to be reconstructed
+	while in the process of being destroyed.
+
+	Also patched object frame to only fire load/unload if
+	render objects exist (since the plugin cannot load without
+	the render object initializing it anyway).
+	
+        * khtml/html/html_objectimpl.cpp:
+        (HTMLObjectElementImpl::attach):
+        (HTMLObjectElementImpl::detach):
+        * khtml/xml/dom_docimpl.cpp:
+        (DocumentImpl::DocumentImpl):
+        (DocumentImpl::recalcStyle):
+        * khtml/xml/dom_docimpl.h:
+
 2002-08-12  Darin Adler  <darin at apple.com>
 
         * force-clean-timestamp: Need a full build because of KJS changes.
diff --git a/WebCore/khtml/html/html_objectimpl.cpp b/WebCore/khtml/html/html_objectimpl.cpp
index c65ddc7..0d238e8 100644
--- a/WebCore/khtml/html/html_objectimpl.cpp
+++ b/WebCore/khtml/html/html_objectimpl.cpp
@@ -369,12 +369,14 @@ void HTMLObjectElementImpl::attach()
     }
 
     // ### do this when we are actually finished loading instead
-    dispatchHTMLEvent(EventImpl::LOAD_EVENT,false,false);
+    if (m_render)
+        dispatchHTMLEvent(EventImpl::LOAD_EVENT,false,false);
 }
 
 void HTMLObjectElementImpl::detach()
 {
-    if (attached())
+    // Only bother with an unload event if we had a render object.  - dwh
+    if (attached() && m_render)
         // ### do this when we are actualy removed from document instead
         dispatchHTMLEvent(EventImpl::UNLOAD_EVENT,false,false);
 
diff --git a/WebCore/khtml/xml/dom_docimpl.cpp b/WebCore/khtml/xml/dom_docimpl.cpp
index b795f2d..914db6d 100644
--- a/WebCore/khtml/xml/dom_docimpl.cpp
+++ b/WebCore/khtml/xml/dom_docimpl.cpp
@@ -279,6 +279,7 @@ DocumentImpl::DocumentImpl(DOMImplementationImpl *_implementation, KHTMLView *v)
     m_styleSheets->ref();
     m_inDocument = true;
     m_styleSelectorDirty = false;
+    m_inStyleRecalc = false;
 
     m_styleSelector = new CSSStyleSelector( this, m_usersheet, m_styleSheets, m_url,
                                             pMode == Strict );
@@ -867,6 +868,11 @@ void DocumentImpl::recalcStyle( StyleChange change )
 //     qDebug("recalcStyle(%p)", this);
 //     QTime qt;
 //     qt.start();
+    if (m_inStyleRecalc)
+        return; // Guard against re-entrancy. -dwh
+        
+    m_inStyleRecalc = true;
+    
     if( !m_render ) goto bail_out;
 
     if ( change == Force ) {
@@ -928,6 +934,8 @@ bail_out:
     setChanged( false );
     setHasChangedChild( false );
     setDocumentChanged( false );
+    
+    m_inStyleRecalc = false;
 }
 
 void DocumentImpl::updateRendering()
diff --git a/WebCore/khtml/xml/dom_docimpl.h b/WebCore/khtml/xml/dom_docimpl.h
index ec556b8..facb218 100644
--- a/WebCore/khtml/xml/dom_docimpl.h
+++ b/WebCore/khtml/xml/dom_docimpl.h
@@ -458,7 +458,8 @@ protected:
     bool m_bParsing;
     bool m_docChanged;
     bool m_styleSelectorDirty;
-
+    bool m_inStyleRecalc;
+    
     DOMString m_title;
 };
 

-- 
WebKit Debian packaging



More information about the Pkg-webkit-commits mailing list