[SCM] WebKit Debian packaging branch, debian/experimental, updated. upstream/1.3.3-9427-gc2be6fc

commit-queue at webkit.org commit-queue at webkit.org
Wed Dec 22 11:45:11 UTC 2010


The following commit has been merged in the debian/experimental branch:
commit 21fb075dc9702997871780e04c3e6e8e3a198916
Author: commit-queue at webkit.org <commit-queue at webkit.org@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Date:   Thu Aug 5 20:01:40 2010 +0000

    2010-08-05  Yong Li  <yoli at rim.com>
    
            Reviewed by Adam Treat.
    
            Fix the problem that down-sampling code doesn't work
            for some GIF's. GIF reader can call setSize() multiple times.
            We should clear the scaling maps before adding new entries.
            Also add a fast path to check if the size has changed since last time.
    
            https://bugs.webkit.org/show_bug.cgi?id=43501
    
            * platform/image-decoders/ImageDecoder.cpp:
            (WebCore::ImageDecoder::prepareScaleDataIfNecessary):
            * platform/image-decoders/gif/GIFImageDecoder.cpp:
            (WebCore::GIFImageDecoder::setSize):
    
    git-svn-id: http://svn.webkit.org/repository/webkit/trunk@64777 268f45cc-cd09-0410-ab3c-d52691b4dbfc

diff --git a/WebCore/ChangeLog b/WebCore/ChangeLog
index 67635cd..9de13fb 100644
--- a/WebCore/ChangeLog
+++ b/WebCore/ChangeLog
@@ -1,3 +1,19 @@
+2010-08-05  Yong Li  <yoli at rim.com>
+
+        Reviewed by Adam Treat.
+
+        Fix the problem that down-sampling code doesn't work
+        for some GIF's. GIF reader can call setSize() multiple times.
+        We should clear the scaling maps before adding new entries.
+        Also add a fast path to check if the size has changed since last time.
+
+        https://bugs.webkit.org/show_bug.cgi?id=43501
+
+        * platform/image-decoders/ImageDecoder.cpp:
+        (WebCore::ImageDecoder::prepareScaleDataIfNecessary):
+        * platform/image-decoders/gif/GIFImageDecoder.cpp:
+        (WebCore::GIFImageDecoder::setSize):
+
 2010-08-05  Ilya Tikhonovsky  <loislo at chromium.org>
 
         Reviewed by Yury Semikhatsky.
diff --git a/WebCore/platform/image-decoders/ImageDecoder.cpp b/WebCore/platform/image-decoders/ImageDecoder.cpp
index 172bccf..fadb9e3 100644
--- a/WebCore/platform/image-decoders/ImageDecoder.cpp
+++ b/WebCore/platform/image-decoders/ImageDecoder.cpp
@@ -219,19 +219,20 @@ template <MatchType type> int getScaledValue(const Vector<int>& scaledValues, in
 
 void ImageDecoder::prepareScaleDataIfNecessary()
 {
+    m_scaled = false;
+    m_scaledColumns.clear();
+    m_scaledRows.clear();
+
     int width = size().width();
     int height = size().height();
     int numPixels = height * width;
-    if (m_maxNumPixels > 0 && numPixels > m_maxNumPixels) {
-        m_scaled = true;
-        double scale = sqrt(m_maxNumPixels / (double)numPixels);
-        fillScaledValues(m_scaledColumns, scale, width);
-        fillScaledValues(m_scaledRows, scale, height);
-    } else if (m_scaled) {
-        m_scaled = false;
-        m_scaledColumns.clear();
-        m_scaledRows.clear();
-    }
+    if (m_maxNumPixels <= 0 || numPixels <= m_maxNumPixels)
+        return;
+
+    m_scaled = true;
+    double scale = sqrt(m_maxNumPixels / (double)numPixels);
+    fillScaledValues(m_scaledColumns, scale, width);
+    fillScaledValues(m_scaledRows, scale, height);
 }
 
 int ImageDecoder::upperBoundScaledX(int origX, int searchStart)
diff --git a/WebCore/platform/image-decoders/gif/GIFImageDecoder.cpp b/WebCore/platform/image-decoders/gif/GIFImageDecoder.cpp
index a590a6c..ec16da7 100644
--- a/WebCore/platform/image-decoders/gif/GIFImageDecoder.cpp
+++ b/WebCore/platform/image-decoders/gif/GIFImageDecoder.cpp
@@ -61,6 +61,9 @@ bool GIFImageDecoder::isSizeAvailable()
 
 bool GIFImageDecoder::setSize(unsigned width, unsigned height)
 {
+    if (ImageDecoder::isSizeAvailable() && size().width() == width && size().height() == height)
+        return true;
+
     if (!ImageDecoder::setSize(width, height))
         return false;
 

-- 
WebKit Debian packaging



More information about the Pkg-webkit-commits mailing list