[SCM] WebKit Debian packaging branch, webkit-1.1, updated. upstream/1.1.17-1283-gcf603cf
eric at webkit.org
eric at webkit.org
Tue Jan 5 23:59:03 UTC 2010
The following commit has been merged in the webkit-1.1 branch:
commit 35b765c2fd5c942baf13db4e89d2d4ea29f5a60e
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