Title: [138561] trunk/Source
Revision
138561
Author
loi...@chromium.org
Date
2012-12-29 01:27:01 -0800 (Sat, 29 Dec 2012)

Log Message

Web Inspector: Native Memory Instrumentation: instrument not instrumented members.
https://bugs.webkit.org/show_bug.cgi?id=105830

Reviewed by Vsevolod Vlasov.

In some cases we don't want to visit some class members.
As example we decided to skip pointers to interface classes such as GraphicLayerClient.
We could use addWeakPointer for them but it can't be used for nonpointer members.
In the offline discussion we came to a conclusion that we need a new instrumentation
method ignoreMember, which will be used for all the members which we won't like to visit/instrument.

DriveBy: Also I instrumented not yet instrumented members.

Source/WebCore:

* bindings/v8/DOMWrapperMap.h:
(WebCore::DOMWrapperMap::reportMemoryUsage):
* bindings/v8/ScriptWrappable.h:
(WebCore::ScriptWrappable::reportMemoryUsage):
* html/HTMLMediaElement.cpp:
(WebCore::HTMLMediaElement::reportMemoryUsage):
* platform/KURLGoogle.cpp:
(WebCore::KURLGooglePrivate::reportMemoryUsage):
* platform/SharedBuffer.cpp:
(WebCore::SharedBuffer::reportMemoryUsage):
* platform/audio/AudioArray.h:
(WebCore::AudioArray::reportMemoryUsage):
* platform/graphics/GraphicsLayer.cpp:
(WebCore::GraphicsLayer::reportMemoryUsage):
* rendering/RenderLayerCompositor.cpp:
(WebCore::RenderLayerCompositor::reportMemoryUsage):
* rendering/RenderTableSection.cpp:
(WebCore::RenderTableSection::RowStruct::reportMemoryUsage):
* rendering/style/RenderStyle.cpp:
(WebCore::RenderStyle::reportMemoryUsage):
* rendering/style/StyleRareInheritedData.cpp:
(WebCore::StyleRareInheritedData::reportMemoryUsage):

Source/WTF:

* wtf/MemoryInstrumentation.h:
(MemoryClassInfo):
(WTF::MemoryClassInfo::ignoreMember):

Modified Paths

Diff

Modified: trunk/Source/WTF/ChangeLog (138560 => 138561)


--- trunk/Source/WTF/ChangeLog	2012-12-29 09:19:35 UTC (rev 138560)
+++ trunk/Source/WTF/ChangeLog	2012-12-29 09:27:01 UTC (rev 138561)
@@ -1,3 +1,22 @@
+2012-12-28  Ilya Tikhonovsky  <loi...@chromium.org>
+
+        Web Inspector: Native Memory Instrumentation: instrument not instrumented members.
+        https://bugs.webkit.org/show_bug.cgi?id=105830
+
+        Reviewed by Vsevolod Vlasov.
+
+        In some cases we don't want to visit some class members.
+        As example we decided to skip pointers to interface classes such as GraphicLayerClient.
+        We could use addWeakPointer for them but it can't be used for nonpointer members.
+        In the offline discussion we came to a conclusion that we need a new instrumentation
+        method ignoreMember, which will be used for all the members which we won't like to visit/instrument.
+
+        DriveBy: Also I instrumented not yet instrumented members.
+
+        * wtf/MemoryInstrumentation.h:
+        (MemoryClassInfo):
+        (WTF::MemoryClassInfo::ignoreMember):
+
 2012-12-26  Gyuyoung Kim  <gyuyoung....@samsung.com>
 
         Fix build warning in OSAllocatorPosix.cpp

Modified: trunk/Source/WTF/wtf/MemoryInstrumentation.h (138560 => 138561)


--- trunk/Source/WTF/wtf/MemoryInstrumentation.h	2012-12-29 09:19:35 UTC (rev 138560)
+++ trunk/Source/WTF/wtf/MemoryInstrumentation.h	2012-12-29 09:27:01 UTC (rev 138561)
@@ -243,11 +243,13 @@
         if (!m_skipMembers)
             m_memoryInstrumentation->addObject(member, m_memoryObjectInfo, edgeName);
     }
+
     WTF_EXPORT_PRIVATE void addRawBuffer(const void* buffer, size_t, const char* nodeName = 0, const char* edgeName = 0);
     WTF_EXPORT_PRIVATE void addPrivateBuffer(size_t, MemoryObjectType ownerObjectType = 0, const char* nodeName = 0, const char* edgeName = 0);
     WTF_EXPORT_PRIVATE void setCustomAllocation(bool);
 
     void addWeakPointer(void*) { }
+    template<typename M> void ignoreMember(const M&) { }
 
 private:
     WTF_EXPORT_PRIVATE void init(const void* pointer, MemoryObjectType, size_t actualSize);

Modified: trunk/Source/WebCore/ChangeLog (138560 => 138561)


--- trunk/Source/WebCore/ChangeLog	2012-12-29 09:19:35 UTC (rev 138560)
+++ trunk/Source/WebCore/ChangeLog	2012-12-29 09:27:01 UTC (rev 138561)
@@ -1,3 +1,41 @@
+2012-12-28  Ilya Tikhonovsky  <loi...@chromium.org>
+
+        Web Inspector: Native Memory Instrumentation: instrument not instrumented members.
+        https://bugs.webkit.org/show_bug.cgi?id=105830
+
+        Reviewed by Vsevolod Vlasov.
+
+        In some cases we don't want to visit some class members.
+        As example we decided to skip pointers to interface classes such as GraphicLayerClient.
+        We could use addWeakPointer for them but it can't be used for nonpointer members.
+        In the offline discussion we came to a conclusion that we need a new instrumentation
+        method ignoreMember, which will be used for all the members which we won't like to visit/instrument.
+
+        DriveBy: Also I instrumented not yet instrumented members.
+
+        * bindings/v8/DOMWrapperMap.h:
+        (WebCore::DOMWrapperMap::reportMemoryUsage):
+        * bindings/v8/ScriptWrappable.h:
+        (WebCore::ScriptWrappable::reportMemoryUsage):
+        * html/HTMLMediaElement.cpp:
+        (WebCore::HTMLMediaElement::reportMemoryUsage):
+        * platform/KURLGoogle.cpp:
+        (WebCore::KURLGooglePrivate::reportMemoryUsage):
+        * platform/SharedBuffer.cpp:
+        (WebCore::SharedBuffer::reportMemoryUsage):
+        * platform/audio/AudioArray.h:
+        (WebCore::AudioArray::reportMemoryUsage):
+        * platform/graphics/GraphicsLayer.cpp:
+        (WebCore::GraphicsLayer::reportMemoryUsage):
+        * rendering/RenderLayerCompositor.cpp:
+        (WebCore::RenderLayerCompositor::reportMemoryUsage):
+        * rendering/RenderTableSection.cpp:
+        (WebCore::RenderTableSection::RowStruct::reportMemoryUsage):
+        * rendering/style/RenderStyle.cpp:
+        (WebCore::RenderStyle::reportMemoryUsage):
+        * rendering/style/StyleRareInheritedData.cpp:
+        (WebCore::StyleRareInheritedData::reportMemoryUsage):
+
 2012-12-29  Andrey Lushnikov  <lushni...@chromium.com>
 
         Web Inspector: refactor DefaultTextEditor - annotate handlers and fix getters style

Modified: trunk/Source/WebCore/bindings/v8/DOMWrapperMap.h (138560 => 138561)


--- trunk/Source/WebCore/bindings/v8/DOMWrapperMap.h	2012-12-29 09:19:35 UTC (rev 138560)
+++ trunk/Source/WebCore/bindings/v8/DOMWrapperMap.h	2012-12-29 09:27:01 UTC (rev 138561)
@@ -77,6 +77,7 @@
     {
         MemoryClassInfo info(memoryObjectInfo, this, WebCoreMemoryTypes::Binding);
         info.addMember(m_map);
+        info.ignoreMember(m_callback);
     }
 
     void remove(KeyType* key, v8::Persistent<v8::Object> wrapper)

Modified: trunk/Source/WebCore/bindings/v8/ScriptWrappable.h (138560 => 138561)


--- trunk/Source/WebCore/bindings/v8/ScriptWrappable.h	2012-12-29 09:19:35 UTC (rev 138560)
+++ trunk/Source/WebCore/bindings/v8/ScriptWrappable.h	2012-12-29 09:27:01 UTC (rev 138561)
@@ -69,7 +69,7 @@
     void reportMemoryUsage(MemoryObjectInfo* memoryObjectInfo) const
     {
         MemoryClassInfo info(memoryObjectInfo, this, WebCoreMemoryTypes::DOM);
-        info.addWeakPointer(const_cast<v8::Persistent<v8::Object>*>(&m_wrapper));
+        info.ignoreMember(m_wrapper);
     }
 
 private:

Modified: trunk/Source/WebCore/html/HTMLMediaElement.cpp (138560 => 138561)


--- trunk/Source/WebCore/html/HTMLMediaElement.cpp	2012-12-29 09:19:35 UTC (rev 138560)
+++ trunk/Source/WebCore/html/HTMLMediaElement.cpp	2012-12-29 09:27:01 UTC (rev 138561)
@@ -4768,6 +4768,10 @@
 #if PLATFORM(MAC)
     info.addMember(m_sleepDisabler);
 #endif
+#if ENABLE(WEB_AUDIO)
+    info.addMember(m_audioSourceNode);
+#endif
+
 }
 
 }

Modified: trunk/Source/WebCore/platform/KURLGoogle.cpp (138560 => 138561)


--- trunk/Source/WebCore/platform/KURLGoogle.cpp	2012-12-29 09:19:35 UTC (rev 138560)
+++ trunk/Source/WebCore/platform/KURLGoogle.cpp	2012-12-29 09:27:01 UTC (rev 138561)
@@ -397,6 +397,7 @@
     info.addMember(m_utf8);
     info.addMember(m_string);
     info.addMember(m_innerURL);
+    info.addMember(m_parsed);
 }
 // KURL ------------------------------------------------------------------------
 

Modified: trunk/Source/WebCore/platform/SharedBuffer.cpp (138560 => 138561)


--- trunk/Source/WebCore/platform/SharedBuffer.cpp	2012-12-29 09:19:35 UTC (rev 138560)
+++ trunk/Source/WebCore/platform/SharedBuffer.cpp	2012-12-29 09:27:01 UTC (rev 138561)
@@ -278,10 +278,10 @@
 {
     MemoryClassInfo info(memoryObjectInfo, this);
     info.addMember(m_buffer);
-    info.addMember(m_segments);
     for (unsigned i = 0; i < m_segments.size(); ++i)
         info.addRawBuffer(m_segments[i], segmentSize);
-    info.addMember(m_purgeableBuffer.get());
+    info.addMember(m_segments);
+    info.addMember(m_purgeableBuffer);
 }
 
 unsigned SharedBuffer::getSomeData(const char*& someData, unsigned position) const

Modified: trunk/Source/WebCore/platform/audio/AudioArray.h (138560 => 138561)


--- trunk/Source/WebCore/platform/audio/AudioArray.h	2012-12-29 09:19:35 UTC (rev 138560)
+++ trunk/Source/WebCore/platform/audio/AudioArray.h	2012-12-29 09:27:01 UTC (rev 138561)
@@ -147,6 +147,7 @@
     {
         typename MemoryObjectInfo::ClassInfo info(memoryObjectInfo, this);
         info.addRawBuffer(m_allocation, m_size * sizeof(T));
+        info.ignoreMember(m_alignedData);
     }
 
 private:

Modified: trunk/Source/WebCore/platform/graphics/GraphicsLayer.cpp (138560 => 138561)


--- trunk/Source/WebCore/platform/graphics/GraphicsLayer.cpp	2012-12-29 09:19:35 UTC (rev 138560)
+++ trunk/Source/WebCore/platform/graphics/GraphicsLayer.cpp	2012-12-29 09:27:01 UTC (rev 138561)
@@ -730,6 +730,8 @@
     info.addMember(m_maskLayer);
     info.addMember(m_replicaLayer);
     info.addMember(m_replicatedLayer);
+    info.ignoreMember(m_client);
+    info.addMember(m_name);
 }
 
 } // namespace WebCore

Modified: trunk/Source/WebCore/rendering/RenderLayerCompositor.cpp (138560 => 138561)


--- trunk/Source/WebCore/rendering/RenderLayerCompositor.cpp	2012-12-29 09:19:35 UTC (rev 138560)
+++ trunk/Source/WebCore/rendering/RenderLayerCompositor.cpp	2012-12-29 09:27:01 UTC (rev 138561)
@@ -60,6 +60,7 @@
 #include "TiledBacking.h"
 #include "TransformState.h"
 #include "WebCoreMemoryInstrumentation.h"
+#include <wtf/MemoryInstrumentationHashMap.h>
 
 #if ENABLE(PLUGIN_PROXY_FOR_VIDEO)
 #include "HTMLMediaElement.h"
@@ -2810,6 +2811,7 @@
     info.addMember(m_contentShadowLayer);
 #endif
     info.addMember(m_layerUpdater);
+    info.addMember(m_fixedPositionLayerNotCompositedReasonMap);
 }
 
 } // namespace WebCore

Modified: trunk/Source/WebCore/rendering/RenderTableSection.cpp (138560 => 138561)


--- trunk/Source/WebCore/rendering/RenderTableSection.cpp	2012-12-29 09:19:35 UTC (rev 138560)
+++ trunk/Source/WebCore/rendering/RenderTableSection.cpp	2012-12-29 09:27:01 UTC (rev 138561)
@@ -1457,6 +1457,7 @@
     MemoryClassInfo info(memoryObjectInfo, this, PlatformMemoryTypes::Rendering);
     info.addMember(row);
     info.addMember(rowRenderer);
+    info.addMember(logicalHeight);
 }
 
 void RenderTableSection::CellStruct::reportMemoryUsage(MemoryObjectInfo* memoryObjectInfo) const

Modified: trunk/Source/WebCore/rendering/style/RenderStyle.cpp (138560 => 138561)


--- trunk/Source/WebCore/rendering/style/RenderStyle.cpp	2012-12-29 09:19:35 UTC (rev 138560)
+++ trunk/Source/WebCore/rendering/style/RenderStyle.cpp	2012-12-29 09:27:01 UTC (rev 138561)
@@ -1600,6 +1600,8 @@
 #if ENABLE(SVG)
     info.addMember(m_svgStyle);
 #endif
+    info.addMember(inherited_flags);
+    info.addMember(noninherited_flags);
 }
 
 } // namespace WebCore

Modified: trunk/Source/WebCore/rendering/style/StyleRareInheritedData.cpp (138560 => 138561)


--- trunk/Source/WebCore/rendering/style/StyleRareInheritedData.cpp	2012-12-29 09:19:35 UTC (rev 138560)
+++ trunk/Source/WebCore/rendering/style/StyleRareInheritedData.cpp	2012-12-29 09:27:01 UTC (rev 138561)
@@ -292,6 +292,8 @@
 void StyleRareInheritedData::reportMemoryUsage(MemoryObjectInfo* memoryObjectInfo) const
 {
     MemoryClassInfo info(memoryObjectInfo, this, WebCoreMemoryTypes::CSS);
+    info.addMember(listStyleImage);
+    info.addMember(indent);
     info.addMember(textShadow);
     info.addMember(highlight);
     info.addMember(cursorData);
_______________________________________________
webkit-changes mailing list
webkit-changes@lists.webkit.org
http://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to