Title: [132998] trunk/Source/WebCore
Revision
132998
Author
[email protected]
Date
2012-10-31 01:36:11 -0700 (Wed, 31 Oct 2012)

Log Message

Memory instrumentation: do not report memory occupied by objects referenced using client interfaces
https://bugs.webkit.org/show_bug.cgi?id=100824

Reviewed by Alexander Pavlov.

In many classes we have pointer to a client object. These references should be
reported as weak pointers and the client's memory usage should be reported when
the client is reached from its instrumented owner where we know exact type of
the client. Otherwise we would need to add reportMemoryUsage to all client
interfaces which places additional burden on the client implementers and blurs
the instrumentation boundaries.

* inspector/InspectorController.cpp:
(WebCore::InspectorController::reportMemoryUsage):
* inspector/InspectorDebuggerAgent.cpp:
(WebCore::InspectorDebuggerAgent::reportMemoryUsage):
* inspector/InspectorMemoryAgent.cpp:
(WebCore::InspectorMemoryAgent::reportMemoryUsage):
* inspector/InspectorOverlay.cpp:
(WebCore::InspectorOverlay::reportMemoryUsage):
* inspector/InspectorResourceAgent.cpp:
(WebCore::InspectorResourceAgent::reportMemoryUsage):
* page/Page.cpp:
(WebCore::Page::reportMemoryUsage):

Modified Paths

Diff

Modified: trunk/Source/WebCore/ChangeLog (132997 => 132998)


--- trunk/Source/WebCore/ChangeLog	2012-10-31 08:18:01 UTC (rev 132997)
+++ trunk/Source/WebCore/ChangeLog	2012-10-31 08:36:11 UTC (rev 132998)
@@ -1,3 +1,30 @@
+2012-10-31  Yury Semikhatsky  <[email protected]>
+
+        Memory instrumentation: do not report memory occupied by objects referenced using client interfaces
+        https://bugs.webkit.org/show_bug.cgi?id=100824
+
+        Reviewed by Alexander Pavlov.
+
+        In many classes we have pointer to a client object. These references should be
+        reported as weak pointers and the client's memory usage should be reported when
+        the client is reached from its instrumented owner where we know exact type of
+        the client. Otherwise we would need to add reportMemoryUsage to all client
+        interfaces which places additional burden on the client implementers and blurs
+        the instrumentation boundaries.
+
+        * inspector/InspectorController.cpp:
+        (WebCore::InspectorController::reportMemoryUsage):
+        * inspector/InspectorDebuggerAgent.cpp:
+        (WebCore::InspectorDebuggerAgent::reportMemoryUsage):
+        * inspector/InspectorMemoryAgent.cpp:
+        (WebCore::InspectorMemoryAgent::reportMemoryUsage):
+        * inspector/InspectorOverlay.cpp:
+        (WebCore::InspectorOverlay::reportMemoryUsage):
+        * inspector/InspectorResourceAgent.cpp:
+        (WebCore::InspectorResourceAgent::reportMemoryUsage):
+        * page/Page.cpp:
+        (WebCore::Page::reportMemoryUsage):
+
 2012-10-31  Tim Horton  <[email protected]>
 
         Unreviewed, attempt to fix the build by exporting NoExceptionAssertionChecker symbols.

Modified: trunk/Source/WebCore/inspector/InspectorController.cpp (132997 => 132998)


--- trunk/Source/WebCore/inspector/InspectorController.cpp	2012-10-31 08:18:01 UTC (rev 132997)
+++ trunk/Source/WebCore/inspector/InspectorController.cpp	2012-10-31 08:36:11 UTC (rev 132998)
@@ -404,7 +404,7 @@
     info.addMember(m_inspectorFrontendClient);
     info.addMember(m_inspectorFrontend);
     info.addMember(m_page);
-    info.addMember(m_inspectorClient);
+    info.addWeakPointer(m_inspectorClient);
     info.addMember(m_agents);
 }
 

Modified: trunk/Source/WebCore/inspector/InspectorDebuggerAgent.cpp (132997 => 132998)


--- trunk/Source/WebCore/inspector/InspectorDebuggerAgent.cpp	2012-10-31 08:18:01 UTC (rev 132997)
+++ trunk/Source/WebCore/inspector/InspectorDebuggerAgent.cpp	2012-10-31 08:36:11 UTC (rev 132998)
@@ -748,7 +748,7 @@
     info.addMember(m_breakpointIdToDebugServerBreakpointIds);
     info.addMember(m_continueToLocationBreakpointId);
     info.addMember(m_breakAuxData);
-    info.addMember(m_listener);
+    info.addWeakPointer(m_listener);
 }
 
 void ScriptDebugListener::Script::reportMemoryUsage(MemoryObjectInfo* memoryObjectInfo) const

Modified: trunk/Source/WebCore/inspector/InspectorMemoryAgent.cpp (132997 => 132998)


--- trunk/Source/WebCore/inspector/InspectorMemoryAgent.cpp	2012-10-31 08:18:01 UTC (rev 132997)
+++ trunk/Source/WebCore/inspector/InspectorMemoryAgent.cpp	2012-10-31 08:36:11 UTC (rev 132998)
@@ -559,7 +559,7 @@
 {
     MemoryClassInfo info(memoryObjectInfo, this, WebCoreMemoryTypes::Inspector);
     InspectorBaseAgent<InspectorMemoryAgent>::reportMemoryUsage(memoryObjectInfo);
-    info.addMember(m_inspectorClient);
+    info.addWeakPointer(m_inspectorClient);
     info.addMember(m_page);
 }
 

Modified: trunk/Source/WebCore/inspector/InspectorOverlay.cpp (132997 => 132998)


--- trunk/Source/WebCore/inspector/InspectorOverlay.cpp	2012-10-31 08:18:01 UTC (rev 132997)
+++ trunk/Source/WebCore/inspector/InspectorOverlay.cpp	2012-10-31 08:36:11 UTC (rev 132998)
@@ -504,7 +504,7 @@
 {
     MemoryClassInfo info(memoryObjectInfo, this, WebCoreMemoryTypes::InspectorOverlay);
     info.addMember(m_page);
-    info.addMember(m_client);
+    info.addWeakPointer(m_client);
     info.addMember(m_pausedInDebuggerMessage);
     info.addMember(m_highlightNode);
     info.addMember(m_nodeHighlightConfig);

Modified: trunk/Source/WebCore/inspector/InspectorResourceAgent.cpp (132997 => 132998)


--- trunk/Source/WebCore/inspector/InspectorResourceAgent.cpp	2012-10-31 08:18:01 UTC (rev 132997)
+++ trunk/Source/WebCore/inspector/InspectorResourceAgent.cpp	2012-10-31 08:36:11 UTC (rev 132998)
@@ -674,8 +674,8 @@
 {
     MemoryClassInfo info(memoryObjectInfo, this, WebCoreMemoryTypes::InspectorResourceAgent);
     InspectorBaseAgent<InspectorResourceAgent>::reportMemoryUsage(memoryObjectInfo);
-    info.addMember(m_pageAgent);
-    info.addMember(m_client);
+    info.addWeakPointer(m_pageAgent);
+    info.addWeakPointer(m_client);
     info.addWeakPointer(m_frontend);
     info.addMember(m_userAgentOverride);
     info.addMember(m_resourcesData);

Modified: trunk/Source/WebCore/page/Page.cpp (132997 => 132998)


--- trunk/Source/WebCore/page/Page.cpp	2012-10-31 08:18:01 UTC (rev 132997)
+++ trunk/Source/WebCore/page/Page.cpp	2012-10-31 08:36:11 UTC (rev 132998)
@@ -1295,7 +1295,7 @@
     info.addMember(m_mainFrame);
     info.addMember(m_pluginData);
     info.addMember(m_theme);
-    info.addMember(m_editorClient);
+    info.addWeakPointer(m_editorClient);
     info.addMember(m_featureObserver);
     info.addMember(m_groupName);
     info.addMember(m_pagination);
@@ -1308,7 +1308,7 @@
     info.addMember(m_relevantUnpaintedRenderObjects);
     info.addMember(m_relevantPaintedRegion);
     info.addMember(m_relevantUnpaintedRegion);
-    info.addMember(m_alternativeTextClient);
+    info.addWeakPointer(m_alternativeTextClient);
     info.addMember(m_seenPlugins);
 }
 
_______________________________________________
webkit-changes mailing list
[email protected]
http://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to