Title: [131593] trunk/Source/WebCore
Revision
131593
Author
[email protected]
Date
2012-10-17 07:26:12 -0700 (Wed, 17 Oct 2012)

Log Message

Web Inspector: NMI instrument ImageDecoder. It owns a buffer that could be quite big.
https://bugs.webkit.org/show_bug.cgi?id=99540

Reviewed by Yury Semikhatsky.

* platform/graphics/ImageSource.cpp:
(WebCore::ImageSource::reportMemoryUsage):
(WebCore):
* platform/graphics/ImageSource.h:
(ImageSource):
* platform/image-decoders/ImageDecoder.cpp:
(WebCore::ImageFrame::reportMemoryUsage):
(WebCore):
(WebCore::ImageDecoder::reportMemoryUsage):
* platform/image-decoders/ImageDecoder.h:
(ImageFrame):
(ImageDecoder):
* platform/image-decoders/skia/ImageDecoderSkia.cpp:
(WebCore::ImageFrame::reportMemoryUsage):
(WebCore):

Modified Paths

Diff

Modified: trunk/Source/WebCore/ChangeLog (131592 => 131593)


--- trunk/Source/WebCore/ChangeLog	2012-10-17 14:16:40 UTC (rev 131592)
+++ trunk/Source/WebCore/ChangeLog	2012-10-17 14:26:12 UTC (rev 131593)
@@ -1,3 +1,26 @@
+2012-10-16  Ilya Tikhonovsky  <[email protected]>
+
+        Web Inspector: NMI instrument ImageDecoder. It owns a buffer that could be quite big.
+        https://bugs.webkit.org/show_bug.cgi?id=99540
+
+        Reviewed by Yury Semikhatsky.
+
+        * platform/graphics/ImageSource.cpp:
+        (WebCore::ImageSource::reportMemoryUsage):
+        (WebCore):
+        * platform/graphics/ImageSource.h:
+        (ImageSource):
+        * platform/image-decoders/ImageDecoder.cpp:
+        (WebCore::ImageFrame::reportMemoryUsage):
+        (WebCore):
+        (WebCore::ImageDecoder::reportMemoryUsage):
+        * platform/image-decoders/ImageDecoder.h:
+        (ImageFrame):
+        (ImageDecoder):
+        * platform/image-decoders/skia/ImageDecoderSkia.cpp:
+        (WebCore::ImageFrame::reportMemoryUsage):
+        (WebCore):
+
 2012-10-17  Zeno Albisser  <[email protected]>
 
         [Qt] Fix build on Mac OSX 10.6 and earlier.

Modified: trunk/Source/WebCore/platform/graphics/ImageSource.cpp (131592 => 131593)


--- trunk/Source/WebCore/platform/graphics/ImageSource.cpp	2012-10-17 14:16:40 UTC (rev 131592)
+++ trunk/Source/WebCore/platform/graphics/ImageSource.cpp	2012-10-17 14:26:12 UTC (rev 131593)
@@ -33,6 +33,7 @@
 
 #include "ImageOrientation.h"
 #include "NotImplemented.h"
+#include "PlatformMemoryInstrumentation.h"
 
 namespace WebCore {
 
@@ -205,4 +206,10 @@
     return m_decoder->frameBytesAtIndex(index);
 }
 
+void ImageSource::reportMemoryUsage(MemoryObjectInfo* memoryObjectInfo) const
+{
+    MemoryClassInfo info(memoryObjectInfo, this, PlatformMemoryTypes::Image);
+    info.addMember(m_decoder);
 }
+
+}

Modified: trunk/Source/WebCore/platform/graphics/ImageSource.h (131592 => 131593)


--- trunk/Source/WebCore/platform/graphics/ImageSource.h	2012-10-17 14:16:40 UTC (rev 131592)
+++ trunk/Source/WebCore/platform/graphics/ImageSource.h	2012-10-17 14:26:12 UTC (rev 131593)
@@ -155,6 +155,8 @@
     static void setMaxPixelsPerDecodedImage(unsigned maxPixels) { s_maxPixelsPerDecodedImage = maxPixels; }
 #endif
 
+    void reportMemoryUsage(MemoryObjectInfo*) const;
+
 private:
     NativeImageSourcePtr m_decoder;
 

Modified: trunk/Source/WebCore/platform/graphics/cg/ImageSourceCG.cpp (131592 => 131593)


--- trunk/Source/WebCore/platform/graphics/cg/ImageSourceCG.cpp	2012-10-17 14:16:40 UTC (rev 131592)
+++ trunk/Source/WebCore/platform/graphics/cg/ImageSourceCG.cpp	2012-10-17 14:26:12 UTC (rev 131593)
@@ -396,6 +396,12 @@
     return frameSize.width() * frameSize.height() * 4;
 }
 
+void ImageSource::reportMemoryUsage(MemoryObjectInfo* memoryObjectInfo) const
+{
+    MemoryClassInfo info(memoryObjectInfo, this, PlatformMemoryTypes::Image);
+    info.addMember(m_decoder);
 }
 
+}
+
 #endif // USE(CG)

Modified: trunk/Source/WebCore/platform/image-decoders/ImageDecoder.cpp (131592 => 131593)


--- trunk/Source/WebCore/platform/image-decoders/ImageDecoder.cpp	2012-10-17 14:16:40 UTC (rev 131592)
+++ trunk/Source/WebCore/platform/image-decoders/ImageDecoder.cpp	2012-10-17 14:26:12 UTC (rev 131593)
@@ -30,6 +30,7 @@
 #endif
 #include "JPEGImageDecoder.h"
 #include "PNGImageDecoder.h"
+#include "PlatformMemoryInstrumentation.h"
 #include "SharedBuffer.h"
 #if USE(WEBP)
 #include "WEBPImageDecoder.h"
@@ -37,6 +38,7 @@
 
 #include <algorithm>
 #include <cmath>
+#include <wtf/MemoryInstrumentationVector.h>
 
 using namespace std;
 
@@ -234,6 +236,12 @@
     return m_size.height();
 }
 
+void ImageFrame::reportMemoryUsage(MemoryObjectInfo* memoryObjectInfo) const
+{
+    MemoryClassInfo info(memoryObjectInfo, this, PlatformMemoryTypes::Image);
+    info.addMember(m_backingStore);
+}
+
 #endif
 
 namespace {
@@ -337,4 +345,14 @@
     return getScaledValue<Exact>(m_scaledRows, origY, searchStart);
 }
 
+void ImageDecoder::reportMemoryUsage(MemoryObjectInfo* memoryObjectInfo) const
+{
+    MemoryClassInfo info(memoryObjectInfo, this, PlatformMemoryTypes::Image);
+    info.addMember(m_data);
+    info.addMember(m_frameBufferCache);
+    info.addMember(m_colorProfile);
+    info.addMember(m_scaledColumns);
+    info.addMember(m_scaledRows);
 }
+
+}

Modified: trunk/Source/WebCore/platform/image-decoders/ImageDecoder.h (131592 => 131593)


--- trunk/Source/WebCore/platform/image-decoders/ImageDecoder.h	2012-10-17 14:16:40 UTC (rev 131592)
+++ trunk/Source/WebCore/platform/image-decoders/ImageDecoder.h	2012-10-17 14:26:12 UTC (rev 131593)
@@ -145,6 +145,9 @@
             return m_bytes + (y * width()) + x;
 #endif
         }
+
+        void reportMemoryUsage(MemoryObjectInfo*) const;
+
     private:
         int width() const;
         int height() const;
@@ -359,6 +362,8 @@
         void setMaxNumPixels(int m) { m_maxNumPixels = m; }
 #endif
 
+        virtual void reportMemoryUsage(MemoryObjectInfo*) const;
+
     protected:
         void prepareScaleDataIfNecessary();
         int upperBoundScaledX(int origX, int searchStart = 0);

Modified: trunk/Source/WebCore/platform/image-decoders/skia/ImageDecoderSkia.cpp (131592 => 131593)


--- trunk/Source/WebCore/platform/image-decoders/skia/ImageDecoderSkia.cpp	2012-10-17 14:16:40 UTC (rev 131592)
+++ trunk/Source/WebCore/platform/image-decoders/skia/ImageDecoderSkia.cpp	2012-10-17 14:26:12 UTC (rev 131593)
@@ -27,6 +27,8 @@
 #include "config.h"
 #include "ImageDecoder.h"
 
+#include "PlatformMemoryInstrumentation.h"
+
 namespace WebCore {
 
 ImageFrame::ImageFrame()
@@ -145,4 +147,10 @@
     return m_bitmap.bitmap().height();
 }
 
+void ImageFrame::reportMemoryUsage(MemoryObjectInfo* memoryObjectInfo) const
+{
+    MemoryClassInfo info(memoryObjectInfo, this, PlatformMemoryTypes::Image);
+    info.addMember(m_bitmap);
+}
+
 } // namespace WebCore
_______________________________________________
webkit-changes mailing list
[email protected]
http://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to