Reviewed by Darin.
authormjs <mjs@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Mon, 23 Aug 2004 18:06:37 +0000 (18:06 +0000)
committermjs <mjs@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Mon, 23 Aug 2004 18:06:37 +0000 (18:06 +0000)
<rdar://problem/3771426> assertion failed due to reentering dispatchImageLoadEventsNow

* khtml/xml/dom_docimpl.cpp:
        (DocumentImpl::dispatchImageLoadEventsNow): Avoid re-entering this
function, since it uses a data member for the copy of the list of events
to be dispatched.

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

WebCore/ChangeLog-2005-08-23
WebCore/khtml/xml/dom_docimpl.cpp

index 7790aba..0233bd5 100644 (file)
@@ -2,6 +2,17 @@
 
         Reviewed by Darin.
 
+       <rdar://problem/3771426> assertion failed due to reentering dispatchImageLoadEventsNow
+        
+       * khtml/xml/dom_docimpl.cpp:
+        (DocumentImpl::dispatchImageLoadEventsNow): Avoid re-entering this
+       function, since it uses a data member for the copy of the list of events
+       to be dispatched.
+
+2004-08-23  Maciej Stachowiak  <mjs@apple.com>
+
+        Reviewed by Darin.
+
        <rdar://problem/3770306> XMLHttpRequest does not honor character set encoding
 
         * khtml/ecma/xmlhttprequest.cpp:
index 59fb7c1..7d56c88 100644 (file)
@@ -2614,6 +2614,13 @@ void DocumentImpl::removeImage(HTMLImageLoader* image)
 
 void DocumentImpl::dispatchImageLoadEventsNow()
 {
+    // need to avoid re-entering this function; if new dispatches are
+    // scheduled before the parent finishes processing the list, they
+    // will set a timer and eventually be processed
+    if (!m_imageLoadEventDispatchingList.isEmpty()) {
+        return;
+    }
+
     if (m_imageLoadEventTimer) {
         killTimer(m_imageLoadEventTimer);
         m_imageLoadEventTimer = 0;