[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