[SCM] WebKit Debian packaging branch, webkit-1.1, updated. upstream/1.1.15.1-1414-gc69ee75

ggaren at apple.com ggaren at apple.com
Thu Oct 29 20:34:00 UTC 2009


The following commit has been merged in the webkit-1.1 branch:
commit 7f9efd77abb5f8ded15eb820a9a5786d0f1f4fe7
Author: ggaren at apple.com <ggaren at apple.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Date:   Fri Sep 25 00:18:00 2009 +0000

    Fixed sudden termination console spew due to too many calls to
    enableSuddenTermination.
    
    Patch by Geoffrey Garen <ggaren at apple.com> on 2009-09-24
    Reviewed by Stephanie Lewis.
    
    <rdar://problem/7063125> 10A410: Safari logging enableSuddenTermination errors
    
    * page/DOMWindow.cpp:
    (WebCore::removeUnloadEventListener):
    (WebCore::removeAllUnloadEventListeners):
    (WebCore::removeBeforeUnloadEventListener):
    (WebCore::removeAllBeforeUnloadEventListeners): Only
    enableSuddenTermination if the set of listeners is empty *and* this
    window was in the set. Otherwise, a no-op will cause us to enableSuddenTermination.
    
    
    
    git-svn-id: http://svn.webkit.org/repository/webkit/trunk@48740 268f45cc-cd09-0410-ab3c-d52691b4dbfc

diff --git a/WebCore/ChangeLog b/WebCore/ChangeLog
index 904d5fb..501a1f5 100644
--- a/WebCore/ChangeLog
+++ b/WebCore/ChangeLog
@@ -1,3 +1,20 @@
+2009-09-24  Geoffrey Garen  <ggaren at apple.com>
+
+        Reviewed by Stephanie Lewis.
+
+        Fixed sudden termination console spew due to too many calls to
+        enableSuddenTermination.
+        
+        <rdar://problem/7063125> 10A410: Safari logging enableSuddenTermination errors
+
+        * page/DOMWindow.cpp:
+        (WebCore::removeUnloadEventListener):
+        (WebCore::removeAllUnloadEventListeners):
+        (WebCore::removeBeforeUnloadEventListener):
+        (WebCore::removeAllBeforeUnloadEventListeners): Only
+        enableSuddenTermination if the set of listeners is empty *and* this
+        window was in the set. Otherwise, a no-op will cause us to enableSuddenTermination.
+
 2009-09-24  Carol Szabo  <carol.szabo at nokia.com>
 
         Reviewed by Alexey Proskuryakov.
diff --git a/WebCore/page/DOMWindow.cpp b/WebCore/page/DOMWindow.cpp
index b992ee3..533fe50 100644
--- a/WebCore/page/DOMWindow.cpp
+++ b/WebCore/page/DOMWindow.cpp
@@ -136,7 +136,10 @@ static void addUnloadEventListener(DOMWindow* domWindow)
 static void removeUnloadEventListener(DOMWindow* domWindow)
 {
     DOMWindowSet& set = windowsWithUnloadEventListeners();
-    set.remove(domWindow);
+    DOMWindowSet::iterator it = set.find(domWindow);
+    if (it == set.end())
+        return;
+    set.remove(it);
     if (set.isEmpty())
         enableSuddenTermination();
 }
@@ -144,7 +147,10 @@ static void removeUnloadEventListener(DOMWindow* domWindow)
 static void removeAllUnloadEventListeners(DOMWindow* domWindow)
 {
     DOMWindowSet& set = windowsWithUnloadEventListeners();
-    set.removeAll(domWindow);
+    DOMWindowSet::iterator it = set.find(domWindow);
+    if (it == set.end())
+        return;
+    set.removeAll(it);
     if (set.isEmpty())
         enableSuddenTermination();
 }
@@ -160,7 +166,10 @@ static void addBeforeUnloadEventListener(DOMWindow* domWindow)
 static void removeBeforeUnloadEventListener(DOMWindow* domWindow)
 {
     DOMWindowSet& set = windowsWithBeforeUnloadEventListeners();
-    set.remove(domWindow);
+    DOMWindowSet::iterator it = set.find(domWindow);
+    if (it == set.end())
+        return;
+    set.remove(it);
     if (set.isEmpty())
         enableSuddenTermination();
 }
@@ -168,7 +177,10 @@ static void removeBeforeUnloadEventListener(DOMWindow* domWindow)
 static void removeAllBeforeUnloadEventListeners(DOMWindow* domWindow)
 {
     DOMWindowSet& set = windowsWithBeforeUnloadEventListeners();
-    set.removeAll(domWindow);
+    DOMWindowSet::iterator it = set.find(domWindow);
+    if (it == set.end())
+        return;
+    set.removeAll(it);
     if (set.isEmpty())
         enableSuddenTermination();
 }

-- 
WebKit Debian packaging



More information about the Pkg-webkit-commits mailing list