2009-08-13 Dirk Schulze <krit@webkit.org>
authoreric@webkit.org <eric@webkit.org@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Thu, 13 Aug 2009 17:52:26 +0000 (17:52 +0000)
committereric@webkit.org <eric@webkit.org@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Thu, 13 Aug 2009 17:52:26 +0000 (17:52 +0000)
        Reviewed by Eric Seidel.

        [CAIRO] getImageData fails on a given rect bigger than the image rect

        The destination image and the source image was mixed up on creating the
        imageData.

        This is just a clean up and doesn't affect the current behavior. It's not
        possible to test this failure in a LayoutTest. Only canvas uses getImageData
        at the moment and returns before calling getImageData, if the image rect does
        not contain the requested rect.

        * platform/graphics/cairo/ImageBufferCairo.cpp:
        (WebCore::getImageData):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@47211 268f45cc-cd09-0410-ab3c-d52691b4dbfc

WebCore/ChangeLog
WebCore/platform/graphics/cairo/ImageBufferCairo.cpp

index b1e6141..a4d6288 100644 (file)
@@ -1,3 +1,20 @@
+2009-08-13  Dirk Schulze  <krit@webkit.org>
+
+        Reviewed by Eric Seidel.
+
+        [CAIRO] getImageData fails on a given rect bigger than the image rect
+
+        The destination image and the source image was mixed up on creating the
+        imageData.
+
+        This is just a clean up and doesn't affect the current behavior. It's not
+        possible to test this failure in a LayoutTest. Only canvas uses getImageData
+        at the moment and returns before calling getImageData, if the image rect does
+        not contain the requested rect.
+
+        * platform/graphics/cairo/ImageBufferCairo.cpp:
+        (WebCore::getImageData):
+
 2009-08-13  Maxime Simon  <simon.maxime@gmail.com>
 
         Reviewed by Eric Seidel.
index dae52ce..0213944 100644 (file)
@@ -148,7 +148,7 @@ PassRefPtr<ImageData> getImageData(const IntRect& rect, const ImageBufferData& d
     unsigned char* dataDst = result->data()->data()->data();
 
     if (rect.x() < 0 || rect.y() < 0 || (rect.x() + rect.width()) > size.width() || (rect.y() + rect.height()) > size.height())
-        memset(dataSrc, 0, result->data()->length());
+        memset(dataDst, 0, result->data()->length());
 
     int originx = rect.x();
     int destx = 0;