[SCM] WebKit Debian packaging branch, webkit-1.1, updated. upstream/1.1.15.1-1414-gc69ee75
pfeldman at chromium.org
pfeldman at chromium.org
Thu Oct 29 20:50:09 UTC 2009
The following commit has been merged in the webkit-1.1 branch:
commit acb70cddd9ada6e4034833da38f616e69fc8351b
Author: pfeldman at chromium.org <pfeldman at chromium.org@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Date: Thu Oct 22 19:15:36 2009 +0000
2009-10-22 Pavel Feldman <pfeldman at chromium.org>
Reviewed by Timothy Hatcher.
Web Inspector: Fix DOMAgent leak.
https://bugs.webkit.org/show_bug.cgi?id=30615
* inspector/InspectorController.cpp:
(WebCore::InspectorController::~InspectorController):
(WebCore::InspectorController::setFrontendProxyObject):
(WebCore::InspectorController::close):
(WebCore::InspectorController::releaseDOMAgent):
* inspector/InspectorController.h:
* inspector/InspectorDOMAgent.h:
(WebCore::InspectorDOMAgent::create):
git-svn-id: http://svn.webkit.org/repository/webkit/trunk@49950 268f45cc-cd09-0410-ab3c-d52691b4dbfc
diff --git a/WebCore/ChangeLog b/WebCore/ChangeLog
index 63b4bf8..76faba2 100644
--- a/WebCore/ChangeLog
+++ b/WebCore/ChangeLog
@@ -1,3 +1,20 @@
+2009-10-22 Pavel Feldman <pfeldman at chromium.org>
+
+ Reviewed by Timothy Hatcher.
+
+ Web Inspector: Fix DOMAgent leak.
+
+ https://bugs.webkit.org/show_bug.cgi?id=30615
+
+ * inspector/InspectorController.cpp:
+ (WebCore::InspectorController::~InspectorController):
+ (WebCore::InspectorController::setFrontendProxyObject):
+ (WebCore::InspectorController::close):
+ (WebCore::InspectorController::releaseDOMAgent):
+ * inspector/InspectorController.h:
+ * inspector/InspectorDOMAgent.h:
+ (WebCore::InspectorDOMAgent::create):
+
2009-10-22 Dimitri Glazkov <dglazkov at chromium.org>
Reviewed by Adam Barth.
diff --git a/WebCore/inspector/InspectorController.cpp b/WebCore/inspector/InspectorController.cpp
index c54a768..7509009 100644
--- a/WebCore/inspector/InspectorController.cpp
+++ b/WebCore/inspector/InspectorController.cpp
@@ -171,10 +171,7 @@ InspectorController::~InspectorController()
s_settingCache = 0;
}
- // m_domAgent is RefPtr. Remove DOM listeners first to ensure that there are
- // no references to the DOM agent from the DOM tree.
- if (m_domAgent)
- m_domAgent->setDocument(0);
+ releaseDOMAgent();
m_inspectorBackend->disconnectController();
}
@@ -557,7 +554,8 @@ void InspectorController::setFrontendProxyObject(ScriptState* scriptState, Scrip
m_scriptState = scriptState;
m_injectedScriptObj = injectedScriptObj;
m_frontend.set(new InspectorFrontend(this, scriptState, webInspectorObj));
- m_domAgent = new InspectorDOMAgent(m_frontend.get());
+ releaseDOMAgent();
+ m_domAgent = InspectorDOMAgent::create(m_frontend.get());
m_timelineAgent = 0;
}
@@ -613,11 +611,7 @@ void InspectorController::close()
m_frontend.set(0);
m_injectedScriptObj = ScriptObject();
- // m_domAgent is RefPtr. Remove DOM listeners first to ensure that there are
- // no references to the DOM agent from the DOM tree.
- if (m_domAgent)
- m_domAgent->setDocument(0);
- m_domAgent = 0;
+ releaseDOMAgent();
m_timelineAgent = 0;
m_scriptState = 0;
if (m_page)
@@ -647,6 +641,15 @@ void InspectorController::closeWindow()
m_client->closeWindow();
}
+void InspectorController::releaseDOMAgent()
+{
+ // m_domAgent is RefPtr. Remove DOM listeners first to ensure that there are
+ // no references to the DOM agent from the DOM tree.
+ if (m_domAgent)
+ m_domAgent->setDocument(0);
+ m_domAgent = 0;
+}
+
void InspectorController::populateScriptObjects()
{
ASSERT(m_frontend);
diff --git a/WebCore/inspector/InspectorController.h b/WebCore/inspector/InspectorController.h
index 8c14532..1f7e07e 100644
--- a/WebCore/inspector/InspectorController.h
+++ b/WebCore/inspector/InspectorController.h
@@ -300,6 +300,7 @@ private:
void storeLastActivePanel(const String& panelName);
void closeWindow();
InspectorDOMAgent* domAgent() { return m_domAgent.get(); }
+ void releaseDOMAgent();
friend class InspectorFrontend;
// Following are used from InspectorFrontend only. We don't want to expose them to the
diff --git a/WebCore/inspector/InspectorDOMAgent.h b/WebCore/inspector/InspectorDOMAgent.h
index b9bdb6b..3f736f7 100644
--- a/WebCore/inspector/InspectorDOMAgent.h
+++ b/WebCore/inspector/InspectorDOMAgent.h
@@ -68,6 +68,11 @@ namespace WebCore {
class InspectorDOMAgent : public EventListener {
public:
+ static PassRefPtr<InspectorDOMAgent> create(InspectorFrontend* frontend)
+ {
+ return adoptRef(new InspectorDOMAgent(frontend));
+ }
+
static const InspectorDOMAgent* cast(const EventListener* listener)
{
return listener->type() == InspectorDOMAgentType
--
WebKit Debian packaging
More information about the Pkg-webkit-commits
mailing list