Title: [128752] trunk/Source/WebCore
Revision
128752
Author
[email protected]
Date
2012-09-17 06:33:03 -0700 (Mon, 17 Sep 2012)

Log Message

Web Inspector: NMI don't double count fields of StaticDOMDataStore
https://bugs.webkit.org/show_bug.cgi?id=96911

Reviewed by Alexander Pavlov.

Provided two separate memory usage reporting routines for static and
scoped DOM data stores.

* bindings/v8/DOMDataStore.cpp:
* bindings/v8/DOMDataStore.h:
(DOMDataStore):
* bindings/v8/ScopedDOMDataStore.cpp:
(WebCore::ScopedDOMDataStore::reportMemoryUsage):
(WebCore):
* bindings/v8/ScopedDOMDataStore.h:
(ScopedDOMDataStore):
* bindings/v8/StaticDOMDataStore.cpp:
(WebCore::StaticDOMDataStore::reportMemoryUsage):
(WebCore):
* bindings/v8/StaticDOMDataStore.h:
(StaticDOMDataStore):

Modified Paths

Diff

Modified: trunk/Source/WebCore/ChangeLog (128751 => 128752)


--- trunk/Source/WebCore/ChangeLog	2012-09-17 13:32:37 UTC (rev 128751)
+++ trunk/Source/WebCore/ChangeLog	2012-09-17 13:33:03 UTC (rev 128752)
@@ -1,3 +1,27 @@
+2012-09-17  Yury Semikhatsky  <[email protected]>
+
+        Web Inspector: NMI don't double count fields of StaticDOMDataStore
+        https://bugs.webkit.org/show_bug.cgi?id=96911
+
+        Reviewed by Alexander Pavlov.
+
+        Provided two separate memory usage reporting routines for static and
+        scoped DOM data stores.
+
+        * bindings/v8/DOMDataStore.cpp:
+        * bindings/v8/DOMDataStore.h:
+        (DOMDataStore):
+        * bindings/v8/ScopedDOMDataStore.cpp:
+        (WebCore::ScopedDOMDataStore::reportMemoryUsage):
+        (WebCore):
+        * bindings/v8/ScopedDOMDataStore.h:
+        (ScopedDOMDataStore):
+        * bindings/v8/StaticDOMDataStore.cpp:
+        (WebCore::StaticDOMDataStore::reportMemoryUsage):
+        (WebCore):
+        * bindings/v8/StaticDOMDataStore.h:
+        (StaticDOMDataStore):
+
 2012-09-17  Christophe Dumez  <[email protected]>
 
         [EFL] autoscroll-in-textarea.html fails on EFL

Modified: trunk/Source/WebCore/bindings/v8/DOMDataStore.cpp (128751 => 128752)


--- trunk/Source/WebCore/bindings/v8/DOMDataStore.cpp	2012-09-17 13:32:37 UTC (rev 128751)
+++ trunk/Source/WebCore/bindings/v8/DOMDataStore.cpp	2012-09-17 13:33:03 UTC (rev 128752)
@@ -122,10 +122,10 @@
 void DOMDataStore::reportMemoryUsage(MemoryObjectInfo* memoryObjectInfo) const
 {
     MemoryClassInfo info(memoryObjectInfo, this, WebCoreMemoryTypes::Binding);
-    info.addInstrumentedMember(m_domNodeMap);
-    info.addInstrumentedMember(m_activeDomNodeMap);
-    info.addInstrumentedMember(m_domObjectMap);
-    info.addInstrumentedMember(m_activeDomObjectMap);
+    info.addWeakPointer(m_domNodeMap);
+    info.addWeakPointer(m_activeDomNodeMap);
+    info.addWeakPointer(m_domObjectMap);
+    info.addWeakPointer(m_activeDomObjectMap);
 }
 
 // Called when the object is near death (not reachable from JS roots).

Modified: trunk/Source/WebCore/bindings/v8/ScopedDOMDataStore.cpp (128751 => 128752)


--- trunk/Source/WebCore/bindings/v8/ScopedDOMDataStore.cpp	2012-09-17 13:32:37 UTC (rev 128751)
+++ trunk/Source/WebCore/bindings/v8/ScopedDOMDataStore.cpp	2012-09-17 13:33:03 UTC (rev 128752)
@@ -31,6 +31,8 @@
 #include "config.h"
 #include "ScopedDOMDataStore.h"
 
+#include "WebCoreMemoryInstrumentation.h"
+
 namespace WebCore {
 
 ScopedDOMDataStore::ScopedDOMDataStore()
@@ -50,4 +52,14 @@
     delete m_activeDomObjectMap;
 }
 
+void ScopedDOMDataStore::reportMemoryUsage(MemoryObjectInfo* memoryObjectInfo) const
+{
+    MemoryClassInfo info(memoryObjectInfo, this, WebCoreMemoryTypes::Binding);
+    DOMDataStore::reportMemoryUsage(memoryObjectInfo);
+    info.addInstrumentedMember(m_domNodeMap);
+    info.addInstrumentedMember(m_activeDomNodeMap);
+    info.addInstrumentedMember(m_domObjectMap);
+    info.addInstrumentedMember(m_activeDomObjectMap);
+}
+
 } // namespace WebCore

Modified: trunk/Source/WebCore/bindings/v8/ScopedDOMDataStore.h (128751 => 128752)


--- trunk/Source/WebCore/bindings/v8/ScopedDOMDataStore.h	2012-09-17 13:32:37 UTC (rev 128751)
+++ trunk/Source/WebCore/bindings/v8/ScopedDOMDataStore.h	2012-09-17 13:33:03 UTC (rev 128752)
@@ -49,6 +49,8 @@
         // This can be called when WTF thread is tearing down.
         // We assume that all child threads running V8 instances are created by WTF.
         virtual ~ScopedDOMDataStore();
+
+        virtual void reportMemoryUsage(MemoryObjectInfo*) const OVERRIDE;
     };
 
 } // namespace WebCore

Modified: trunk/Source/WebCore/bindings/v8/StaticDOMDataStore.cpp (128751 => 128752)


--- trunk/Source/WebCore/bindings/v8/StaticDOMDataStore.cpp	2012-09-17 13:32:37 UTC (rev 128751)
+++ trunk/Source/WebCore/bindings/v8/StaticDOMDataStore.cpp	2012-09-17 13:33:03 UTC (rev 128752)
@@ -31,6 +31,7 @@
 #include "config.h"
 #include "StaticDOMDataStore.h"
 #include "V8Binding.h"
+#include "WebCoreMemoryInstrumentation.h"
 
 namespace WebCore {
 
@@ -53,4 +54,14 @@
     V8PerIsolateData::current()->unregisterDOMDataStore(this);
 }
 
+void StaticDOMDataStore::reportMemoryUsage(MemoryObjectInfo* memoryObjectInfo) const
+{
+    MemoryClassInfo info(memoryObjectInfo, this, WebCoreMemoryTypes::Binding);
+    DOMDataStore::reportMemoryUsage(memoryObjectInfo);
+    info.addInstrumentedMember(m_staticDomNodeMap);
+    info.addInstrumentedMember(m_staticActiveDomNodeMap);
+    info.addInstrumentedMember(m_staticDomObjectMap);
+    info.addInstrumentedMember(m_staticActiveDomObjectMap);
+}
+
 } // namespace WebCore

Modified: trunk/Source/WebCore/bindings/v8/StaticDOMDataStore.h (128751 => 128752)


--- trunk/Source/WebCore/bindings/v8/StaticDOMDataStore.h	2012-09-17 13:32:37 UTC (rev 128751)
+++ trunk/Source/WebCore/bindings/v8/StaticDOMDataStore.h	2012-09-17 13:33:03 UTC (rev 128752)
@@ -49,6 +49,8 @@
     StaticDOMDataStore();
     virtual ~StaticDOMDataStore();
 
+    virtual void reportMemoryUsage(MemoryObjectInfo*) const OVERRIDE;
+
 private:
     IntrusiveDOMWrapperMap m_staticDomNodeMap;
     IntrusiveDOMWrapperMap m_staticActiveDomNodeMap;
_______________________________________________
webkit-changes mailing list
[email protected]
http://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to