Changeset 132998 in webkit


Ignore:
Timestamp:
Oct 31, 2012, 1:36:11 AM (13 years ago)
Author:
yurys@chromium.org
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):

Location:
trunk/Source/WebCore
Files:
7 edited

Legend:

Unmodified
Added
Removed
  • trunk/Source/WebCore/ChangeLog

    r132997 r132998  
     12012-10-31  Yury Semikhatsky  <yurys@chromium.org>
     2
     3        Memory instrumentation: do not report memory occupied by objects referenced using client interfaces
     4        https://bugs.webkit.org/show_bug.cgi?id=100824
     5
     6        Reviewed by Alexander Pavlov.
     7
     8        In many classes we have pointer to a client object. These references should be
     9        reported as weak pointers and the client's memory usage should be reported when
     10        the client is reached from its instrumented owner where we know exact type of
     11        the client. Otherwise we would need to add reportMemoryUsage to all client
     12        interfaces which places additional burden on the client implementers and blurs
     13        the instrumentation boundaries.
     14
     15        * inspector/InspectorController.cpp:
     16        (WebCore::InspectorController::reportMemoryUsage):
     17        * inspector/InspectorDebuggerAgent.cpp:
     18        (WebCore::InspectorDebuggerAgent::reportMemoryUsage):
     19        * inspector/InspectorMemoryAgent.cpp:
     20        (WebCore::InspectorMemoryAgent::reportMemoryUsage):
     21        * inspector/InspectorOverlay.cpp:
     22        (WebCore::InspectorOverlay::reportMemoryUsage):
     23        * inspector/InspectorResourceAgent.cpp:
     24        (WebCore::InspectorResourceAgent::reportMemoryUsage):
     25        * page/Page.cpp:
     26        (WebCore::Page::reportMemoryUsage):
     27
    1282012-10-31  Tim Horton  <timothy_horton@apple.com>
    229
  • trunk/Source/WebCore/inspector/InspectorController.cpp

    r131299 r132998  
    405405    info.addMember(m_inspectorFrontend);
    406406    info.addMember(m_page);
    407     info.addMember(m_inspectorClient);
     407    info.addWeakPointer(m_inspectorClient);
    408408    info.addMember(m_agents);
    409409}
  • trunk/Source/WebCore/inspector/InspectorDebuggerAgent.cpp

    r132466 r132998  
    749749    info.addMember(m_continueToLocationBreakpointId);
    750750    info.addMember(m_breakAuxData);
    751     info.addMember(m_listener);
     751    info.addWeakPointer(m_listener);
    752752}
    753753
  • trunk/Source/WebCore/inspector/InspectorMemoryAgent.cpp

    r132730 r132998  
    560560    MemoryClassInfo info(memoryObjectInfo, this, WebCoreMemoryTypes::Inspector);
    561561    InspectorBaseAgent<InspectorMemoryAgent>::reportMemoryUsage(memoryObjectInfo);
    562     info.addMember(m_inspectorClient);
     562    info.addWeakPointer(m_inspectorClient);
    563563    info.addMember(m_page);
    564564}
  • trunk/Source/WebCore/inspector/InspectorOverlay.cpp

    r131423 r132998  
    505505    MemoryClassInfo info(memoryObjectInfo, this, WebCoreMemoryTypes::InspectorOverlay);
    506506    info.addMember(m_page);
    507     info.addMember(m_client);
     507    info.addWeakPointer(m_client);
    508508    info.addMember(m_pausedInDebuggerMessage);
    509509    info.addMember(m_highlightNode);
  • trunk/Source/WebCore/inspector/InspectorResourceAgent.cpp

    r132632 r132998  
    675675    MemoryClassInfo info(memoryObjectInfo, this, WebCoreMemoryTypes::InspectorResourceAgent);
    676676    InspectorBaseAgent<InspectorResourceAgent>::reportMemoryUsage(memoryObjectInfo);
    677     info.addMember(m_pageAgent);
    678     info.addMember(m_client);
     677    info.addWeakPointer(m_pageAgent);
     678    info.addWeakPointer(m_client);
    679679    info.addWeakPointer(m_frontend);
    680680    info.addMember(m_userAgentOverride);
  • trunk/Source/WebCore/page/Page.cpp

    r132023 r132998  
    12961296    info.addMember(m_pluginData);
    12971297    info.addMember(m_theme);
    1298     info.addMember(m_editorClient);
     1298    info.addWeakPointer(m_editorClient);
    12991299    info.addMember(m_featureObserver);
    13001300    info.addMember(m_groupName);
     
    13091309    info.addMember(m_relevantPaintedRegion);
    13101310    info.addMember(m_relevantUnpaintedRegion);
    1311     info.addMember(m_alternativeTextClient);
     1311    info.addWeakPointer(m_alternativeTextClient);
    13121312    info.addMember(m_seenPlugins);
    13131313}
Note: See TracChangeset for help on using the changeset viewer.