[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