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 e6a2d869b0e9edecb2b9c8343df112cc365ce9fc..f542ac2b3fb4c930d5b7637570722dc828870124 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 acf6944132064d64bef63b5bca497eafa8c4334d..6a07a7424d215eabd7159db48cb3d7eca7812975 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()) {