[SCM] WebKit Debian packaging branch, webkit-1.2, updated. upstream/1.1.90-6072-g9a69373

eric at webkit.org eric at webkit.org
Thu Apr 8 00:47:19 UTC 2010


The following commit has been merged in the webkit-1.2 branch:
commit 895de75bccce00ba5b610bc05fea0db1eb9edd45
Author: eric at webkit.org <eric at webkit.org@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Date:   Wed Dec 23 02:11:52 2009 +0000

    2009-12-22  Yongjun Zhang  <yongjun.zhang at nokia.com>
    
            Reviewed by Kenneth Rohde Christiansen.
    
            https://bugs.webkit.org/show_bug.cgi?id=32121
            [Qt] implement ImageDecoderQt::clearFrameBufferCache().
    
            * platform/graphics/qt/ImageDecoderQt.cpp:
            (WebCore::ImageDecoderQt::initializeDecoder):
            (WebCore::ImageDecoderQt::setData):
            (WebCore::ImageDecoderQt::clearFrameBufferCache):
            * platform/graphics/qt/ImageDecoderQt.h:
    
    git-svn-id: http://svn.webkit.org/repository/webkit/trunk@52516 268f45cc-cd09-0410-ab3c-d52691b4dbfc

diff --git a/WebCore/ChangeLog b/WebCore/ChangeLog
index f8b5186..03b4ccc 100644
--- a/WebCore/ChangeLog
+++ b/WebCore/ChangeLog
@@ -1,3 +1,16 @@
+2009-12-22  Yongjun Zhang  <yongjun.zhang at nokia.com>
+
+        Reviewed by Kenneth Rohde Christiansen.
+
+        https://bugs.webkit.org/show_bug.cgi?id=32121
+        [Qt] implement ImageDecoderQt::clearFrameBufferCache().
+       
+        * platform/graphics/qt/ImageDecoderQt.cpp:
+        (WebCore::ImageDecoderQt::initializeDecoder):
+        (WebCore::ImageDecoderQt::setData):
+        (WebCore::ImageDecoderQt::clearFrameBufferCache):
+        * platform/graphics/qt/ImageDecoderQt.h:
+
 2009-12-22  Nayan Kumar K  <nayankk at gmail.com>
 
         Reviewed by Eric Seidel.
diff --git a/WebCore/platform/graphics/qt/ImageDecoderQt.cpp b/WebCore/platform/graphics/qt/ImageDecoderQt.cpp
index 5fa76ca..f120c1a 100644
--- a/WebCore/platform/graphics/qt/ImageDecoderQt.cpp
+++ b/WebCore/platform/graphics/qt/ImageDecoderQt.cpp
@@ -59,18 +59,8 @@ ImageDecoderQt::~ImageDecoderQt()
     delete m_buffer;
 }
 
-void ImageDecoderQt::setData(SharedBuffer* data, bool allDataReceived)
+void ImageDecoderQt::initializeDecoder()
 {
-    if (m_failed)
-        return;
-
-    // No progressive loading possible
-    if (!allDataReceived)
-        return;
-
-    // Cache our own new data.
-    ImageDecoder::setData(data, allDataReceived);
-
     // We expect to be only called once with allDataReceived
     ASSERT(!m_buffer);
     ASSERT(!m_reader);
@@ -89,6 +79,20 @@ void ImageDecoderQt::setData(SharedBuffer* data, bool allDataReceived)
     m_format = m_reader->format();
 }
 
+void ImageDecoderQt::setData(SharedBuffer* data, bool allDataReceived)
+{
+    if (m_failed)
+        return;
+
+    // No progressive loading possible
+    if (!allDataReceived)
+        return;
+
+    // Cache our own new data.
+    ImageDecoder::setData(data, allDataReceived);
+    initializeDecoder();
+}
+
 bool ImageDecoderQt::isSizeAvailable()
 {
     if (!ImageDecoder::isSizeAvailable() && m_reader)
@@ -151,8 +155,20 @@ RGBA32Buffer* ImageDecoderQt::frameBufferAtIndex(size_t index)
     return &frame;
 }
 
-void ImageDecoderQt::clearFrameBufferCache(size_t /*index*/)
+void ImageDecoderQt::clearFrameBufferCache(size_t index)
 {
+    if (m_frameBufferCache.isEmpty())
+        return;
+
+    index = qMin(index, m_frameBufferCache.size() - 1);
+
+    for (int i = 0; i < index; ++i) {
+        RGBA32Buffer& frame = m_frameBufferCache[i];
+        frame.setStatus(RGBA32Buffer::FrameEmpty);
+        frame.setDecodedImage(QImage());
+    }
+
+    initializeDecoder();
 }
 
 void ImageDecoderQt::internalDecodeSize()
diff --git a/WebCore/platform/graphics/qt/ImageDecoderQt.h b/WebCore/platform/graphics/qt/ImageDecoderQt.h
index d11b938..27b5115 100644
--- a/WebCore/platform/graphics/qt/ImageDecoderQt.h
+++ b/WebCore/platform/graphics/qt/ImageDecoderQt.h
@@ -58,6 +58,7 @@ private:
     ImageDecoderQt &operator=(const ImageDecoderQt&);
 
 private:
+    void initializeDecoder();
     void internalDecodeSize();
     void internalReadImage(size_t);
     void internalHandleCurrentImage(size_t);

-- 
WebKit Debian packaging



More information about the Pkg-webkit-commits mailing list