Reviewed by Richard.
authormjs <mjs@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Mon, 20 Sep 2004 21:53:19 +0000 (21:53 +0000)
committermjs <mjs@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Mon, 20 Sep 2004 21:53:19 +0000 (21:53 +0000)
<rdar://problem/3672101> HANG: typing into login field at dws-direkt.deutsche-bank.de (infinite recursion)

* khtml/xml/dom_docimpl.cpp:
        (DocumentImpl::defaultEventHandler): Copy the list of handlers
before firing any of them, in case a handler affects the list of
event handlers.

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

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

index e6a2d86..f542ac2 100644 (file)
@@ -1,3 +1,14 @@
+2004-09-20  Maciej Stachowiak  <mjs@apple.com>
+
+        Reviewed by Richard.
+
+       <rdar://problem/3672101> HANG: typing into login field at dws-direkt.deutsche-bank.de (infinite recursion)
+        
+       * khtml/xml/dom_docimpl.cpp:
+        (DocumentImpl::defaultEventHandler): Copy the list of handlers
+       before firing any of them, in case a handler affects the list of
+       event handlers.
+
 2004-09-20  Chris Blumenberg  <cblu@apple.com>
 
        Fixed:
index acf6944..6a07a74 100644 (file)
@@ -2495,7 +2495,8 @@ CSSStyleDeclarationImpl *DocumentImpl::getOverrideStyle(ElementImpl */*elt*/, DO
 void DocumentImpl::defaultEventHandler(EventImpl *evt)
 {
     // if any html event listeners are registered on the window, then dispatch them here
-    QPtrListIterator<RegisteredEventListener> it(m_windowEventListeners);
+    QPtrList<RegisteredEventListener> listenersCopy = m_windowEventListeners;
+    QPtrListIterator<RegisteredEventListener> it(listenersCopy);
     Event ev(evt);
     for (; it.current(); ++it) {
         if (it.current()->id == evt->id()) {