[SCM] WebKit Debian packaging branch, debian/experimental, updated. debian/1.3.8-1-1049-g2e11a8e

reni at webkit.org reni at webkit.org
Fri Jan 21 15:02:19 UTC 2011


The following commit has been merged in the debian/experimental branch:
commit fa0c66863b28c8f4dd9ddb7f3e43c903bf33fb33
Author: reni at webkit.org <reni at webkit.org@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Date:   Thu Jan 6 16:50:45 2011 +0000

    https://bugs.webkit.org/show_bug.cgi?id=51811
    Merge m_height and m_width members of ImageData into the new m_size member.
    
    Patch by Renata Hodovan <reni at webkit.org> on 2011-01-06
    Reviewed by Andreas Kling.
    
    Image (BitmapImage, ImageSource) types in WebKit use IntSize to store their
    width and height argument, except ImageData. This patch refactors ImageData
    to follow the style of other Image types in WebKit.
    Using of PassRefPtrs other than argument passing is not allowed in WebKit anymore.
    This patch also refactors the PassRefPtr usages of ImageData.
    
    It's just a refactoring, so we don't need any new tests.
    
    * bindings/js/SerializedScriptValue.cpp:
    (WebCore::CloneSerializer::write):
    (WebCore::CloneDeserializer::readTerminal):
    * bindings/v8/SerializedScriptValue.cpp:
    (WebCore::ZigZag::Reader::readImageData):
    * html/ImageData.cpp:
    (WebCore::ImageData::create):
    (WebCore::ImageData::ImageData):
    * html/ImageData.h:
    (WebCore::ImageData::size):
    (WebCore::ImageData::width):
    (WebCore::ImageData::height):
    * html/canvas/CanvasRenderingContext2D.cpp:
    (WebCore::createEmptyImageData):
    (WebCore::CanvasRenderingContext2D::createImageData):
    (WebCore::CanvasRenderingContext2D::getImageData):
    * html/canvas/CanvasRenderingContext2D.h:
    * platform/graphics/haiku/ImageBufferHaiku.cpp:
    (WebCore::getImageData):
    
    
    
    git-svn-id: http://svn.webkit.org/repository/webkit/trunk@75160 268f45cc-cd09-0410-ab3c-d52691b4dbfc

diff --git a/WebCore/ChangeLog b/WebCore/ChangeLog
index 1f83c9e..29c2db1 100644
--- a/WebCore/ChangeLog
+++ b/WebCore/ChangeLog
@@ -1,3 +1,38 @@
+2011-01-06  Renata Hodovan  <reni at webkit.org>
+
+        Reviewed by Andreas Kling.
+
+        https://bugs.webkit.org/show_bug.cgi?id=51811
+        Merge m_height and m_width members of ImageData into the new m_size member.
+
+        Image (BitmapImage, ImageSource) types in WebKit use IntSize to store their
+        width and height argument, except ImageData. This patch refactors ImageData
+        to follow the style of other Image types in WebKit.
+        Using of PassRefPtrs other than argument passing is not allowed in WebKit anymore.
+        This patch also refactors the PassRefPtr usages of ImageData.
+
+        It's just a refactoring, so we don't need any new tests.
+
+        * bindings/js/SerializedScriptValue.cpp:
+        (WebCore::CloneSerializer::write):
+        (WebCore::CloneDeserializer::readTerminal):
+        * bindings/v8/SerializedScriptValue.cpp:
+        (WebCore::ZigZag::Reader::readImageData):
+        * html/ImageData.cpp:
+        (WebCore::ImageData::create):
+        (WebCore::ImageData::ImageData):
+        * html/ImageData.h:
+        (WebCore::ImageData::size):
+        (WebCore::ImageData::width):
+        (WebCore::ImageData::height):
+        * html/canvas/CanvasRenderingContext2D.cpp:
+        (WebCore::createEmptyImageData):
+        (WebCore::CanvasRenderingContext2D::createImageData):
+        (WebCore::CanvasRenderingContext2D::getImageData):
+        * html/canvas/CanvasRenderingContext2D.h:
+        * platform/graphics/haiku/ImageBufferHaiku.cpp:
+        (WebCore::getImageData):
+
 2011-01-06  Yael Aharon  <yael.aharon at nokia.com>
 
         Reviewed by Darin Adler.
diff --git a/WebCore/bindings/js/SerializedScriptValue.cpp b/WebCore/bindings/js/SerializedScriptValue.cpp
index bfa2b75..b02a4bb 100644
--- a/WebCore/bindings/js/SerializedScriptValue.cpp
+++ b/WebCore/bindings/js/SerializedScriptValue.cpp
@@ -151,7 +151,7 @@ static const unsigned int StringPoolTag = 0xFFFFFFFE;
  *    FileListTag <length:uint32_t>(<file:FileData>){length}
  *
  * ImageData :-
- *    ImageDataTag <width:uint32_t><height:uint32_t><length:uint32_t><data:uint8_t{length}>
+ *    ImageDataTag <width:int32_t><height:int32_t><length:uint32_t><data:uint8_t{length}>
  *
  * Blob :-
  *    BlobTag <url:StringData><type:StringData><size:long long>
@@ -496,6 +496,11 @@ private:
         writeLittleEndian(m_buffer, u.i);
     }
 
+    void write(int32_t i)
+    {
+        writeLittleEndian(m_buffer, i);
+    }
+
     void write(unsigned long long i)
     {
         writeLittleEndian(m_buffer, i);
@@ -1120,10 +1125,10 @@ private:
             return toJS(m_exec, static_cast<JSDOMGlobalObject*>(m_globalObject), result.get());
         }
         case ImageDataTag: {
-            uint32_t width;
+            int32_t width;
             if (!read(width))
                 return JSValue();
-            uint32_t height;
+            int32_t height;
             if (!read(height))
                 return JSValue();
             uint32_t length;
@@ -1137,7 +1142,7 @@ private:
                 m_ptr += length;
                 return jsNull();
             }
-            RefPtr<ImageData> result = ImageData::create(width, height);
+            RefPtr<ImageData> result = ImageData::create(IntSize(width, height));
             memcpy(result->data()->data()->data(), m_ptr, length);
             m_ptr += length;
             return toJS(m_exec, static_cast<JSDOMGlobalObject*>(m_globalObject), result.get());
diff --git a/WebCore/bindings/v8/SerializedScriptValue.cpp b/WebCore/bindings/v8/SerializedScriptValue.cpp
index 5a89e1b..6ac4a65 100644
--- a/WebCore/bindings/v8/SerializedScriptValue.cpp
+++ b/WebCore/bindings/v8/SerializedScriptValue.cpp
@@ -879,13 +879,13 @@ private:
             return false;
         if (m_position + pixelDataLength > m_length)
             return false;
-        PassRefPtr<ImageData> imageData = ImageData::create(width, height);
+        RefPtr<ImageData> imageData = ImageData::create(IntSize(width, height));
         WTF::ByteArray* pixelArray = imageData->data()->data();
         ASSERT(pixelArray);
         ASSERT(pixelArray->length() >= pixelDataLength);
         memcpy(pixelArray->data(), m_buffer + m_position, pixelDataLength);
         m_position += pixelDataLength;
-        *value = toV8(imageData);
+        *value = toV8(imageData.release());
         return true;
     }
     
diff --git a/WebCore/html/ImageData.cpp b/WebCore/html/ImageData.cpp
index 2584d6c..ad24136 100644
--- a/WebCore/html/ImageData.cpp
+++ b/WebCore/html/ImageData.cpp
@@ -31,26 +31,24 @@
 
 namespace WebCore {
 
-PassRefPtr<ImageData> ImageData::create(unsigned width, unsigned height)
+PassRefPtr<ImageData> ImageData::create(const IntSize& size)
 {
-    return adoptRef(new ImageData(width, height));
+    return adoptRef(new ImageData(size));
 }
 
-PassRefPtr<ImageData> ImageData::create(unsigned width, unsigned height, PassRefPtr<ByteArray> byteArray)
+PassRefPtr<ImageData> ImageData::create(const IntSize& size, PassRefPtr<ByteArray> byteArray)
 {
-    return adoptRef(new ImageData(width, height, byteArray));
+    return adoptRef(new ImageData(size, byteArray));
 }
 
-ImageData::ImageData(unsigned width, unsigned height)
-    : m_width(width)
-    , m_height(height)
-    , m_data(CanvasPixelArray::create(width * height * 4))
+ImageData::ImageData(const IntSize& size)
+    : m_size(size)
+    , m_data(CanvasPixelArray::create(size.width() * size.height() * 4))
 {
 }
 
-ImageData::ImageData(unsigned width, unsigned height, PassRefPtr<ByteArray> byteArray)
-    : m_width(width)
-    , m_height(height)
+ImageData::ImageData(const IntSize& size, PassRefPtr<ByteArray> byteArray)
+    : m_size(size)
     , m_data(CanvasPixelArray::create(byteArray))
 {
 }
diff --git a/WebCore/html/ImageData.h b/WebCore/html/ImageData.h
index f7daf0e..35d08e7 100644
--- a/WebCore/html/ImageData.h
+++ b/WebCore/html/ImageData.h
@@ -30,6 +30,7 @@
 #define ImageData_h
 
 #include "CanvasPixelArray.h"
+#include "IntSize.h"
 #include <wtf/ByteArray.h>
 #include <wtf/RefCounted.h>
 #include <wtf/RefPtr.h>
@@ -38,19 +39,19 @@ namespace WebCore {
 
 class ImageData : public RefCounted<ImageData> {
 public:
-    static PassRefPtr<ImageData> create(unsigned width, unsigned height);
-    static PassRefPtr<ImageData> create(unsigned width, unsigned height, PassRefPtr<ByteArray>);
+    static PassRefPtr<ImageData> create(const IntSize&);
+    static PassRefPtr<ImageData> create(const IntSize&, PassRefPtr<ByteArray>);
 
-    unsigned width() const { return m_width; }
-    unsigned height() const { return m_height; }
+    IntSize size() const { return m_size; }
+    int width() const { return m_size.width(); }
+    int height() const { return m_size.height(); }
     CanvasPixelArray* data() const { return m_data.get(); }
 
 private:
-    ImageData(unsigned width, unsigned height);
-    ImageData(unsigned width, unsigned height, PassRefPtr<ByteArray>);
+    ImageData(const IntSize&);
+    ImageData(const IntSize&, PassRefPtr<ByteArray>);
 
-    unsigned m_width;
-    unsigned m_height;
+    IntSize m_size;
     RefPtr<CanvasPixelArray> m_data;
 };
 
diff --git a/WebCore/html/canvas/CanvasRenderingContext2D.cpp b/WebCore/html/canvas/CanvasRenderingContext2D.cpp
index bbb478f..62c5793 100644
--- a/WebCore/html/canvas/CanvasRenderingContext2D.cpp
+++ b/WebCore/html/canvas/CanvasRenderingContext2D.cpp
@@ -1516,7 +1516,7 @@ GraphicsContext* CanvasRenderingContext2D::drawingContext() const
 
 static PassRefPtr<ImageData> createEmptyImageData(const IntSize& size)
 {
-    RefPtr<ImageData> data = ImageData::create(size.width(), size.height());
+    RefPtr<ImageData> data = ImageData::create(size);
     memset(data->data()->data()->data(), 0, data->data()->data()->length());
     return data.release();
 }
@@ -1528,8 +1528,7 @@ PassRefPtr<ImageData> CanvasRenderingContext2D::createImageData(PassRefPtr<Image
         return 0;
     }
 
-    IntSize size(imageData->width(), imageData->height());
-    return createEmptyImageData(size);
+    return createEmptyImageData(imageData->size());
 }
 
 PassRefPtr<ImageData> CanvasRenderingContext2D::createImageData(float sw, float sh, ExceptionCode& ec) const
@@ -1587,7 +1586,7 @@ PassRefPtr<ImageData> CanvasRenderingContext2D::getImageData(float sx, float sy,
     ImageBuffer* buffer = canvas()->buffer();
     if (!buffer)
         return createEmptyImageData(scaledRect.size());
-    return ImageData::create(scaledRect.width(), scaledRect.height(), buffer->getUnmultipliedImageData(scaledRect));
+    return ImageData::create(scaledRect.size(), buffer->getUnmultipliedImageData(scaledRect));
 }
 
 void CanvasRenderingContext2D::putImageData(ImageData* data, float dx, float dy, ExceptionCode& ec)
diff --git a/WebCore/html/canvas/CanvasRenderingContext2D.h b/WebCore/html/canvas/CanvasRenderingContext2D.h
index f51c5e9..206744e 100644
--- a/WebCore/html/canvas/CanvasRenderingContext2D.h
+++ b/WebCore/html/canvas/CanvasRenderingContext2D.h
@@ -194,7 +194,7 @@ public:
     PassRefPtr<CanvasPattern> createPattern(HTMLImageElement*, const String& repetitionType, ExceptionCode&);
     PassRefPtr<CanvasPattern> createPattern(HTMLCanvasElement*, const String& repetitionType, ExceptionCode&);
 
-    PassRefPtr<ImageData> createImageData(PassRefPtr<ImageData> imageData, ExceptionCode&) const;
+    PassRefPtr<ImageData> createImageData(PassRefPtr<ImageData>, ExceptionCode&) const;
     PassRefPtr<ImageData> createImageData(float width, float height, ExceptionCode&) const;
     PassRefPtr<ImageData> getImageData(float sx, float sy, float sw, float sh, ExceptionCode&) const;
     void putImageData(ImageData*, float dx, float dy, ExceptionCode&);
diff --git a/WebCore/platform/graphics/haiku/ImageBufferHaiku.cpp b/WebCore/platform/graphics/haiku/ImageBufferHaiku.cpp
index cc12de7..bdad6a0 100644
--- a/WebCore/platform/graphics/haiku/ImageBufferHaiku.cpp
+++ b/WebCore/platform/graphics/haiku/ImageBufferHaiku.cpp
@@ -209,7 +209,7 @@ static inline void convertToInternalData(const uint8* sourceRows, unsigned sourc
 
 static PassRefPtr<ImageData> getImageData(const IntRect& rect, const ImageBufferData& imageData, const IntSize& size, bool premultiplied)
 {
-    PassRefPtr<ImageData> result = ImageData::create(rect.width(), rect.height());
+    RefPtr<ImageData> result = ImageData::create(IntSize(rect.width(), rect.height()));
     unsigned char* data = result->data()->data()->data();
 
     // If the destination image is larger than the source image, the outside
@@ -221,7 +221,7 @@ static PassRefPtr<ImageData> getImageData(const IntRect& rect, const ImageBuffer
     // If the requested image is outside the source image, we can return at
     // this point.
     if (rect.x() > size.width() || rect.y() > size.height() || rect.right() < 0 || rect.bottom() < 0)
-        return result;
+        return result.release();
 
     // Now we know there must be an intersection rect which we need to extract.
     BRect sourceRect(0, 0, size.width() - 1, size.height() - 1);
@@ -246,7 +246,7 @@ static PassRefPtr<ImageData> getImageData(const IntRect& rect, const ImageBuffer
     convertFromInternalData(sourceRows, sourceBytesPerRow, destRows, destBytesPerRow,
         rows, columns, premultiplied);
 
-    return result;
+    return result.release();
 }
 
 

-- 
WebKit Debian packaging



More information about the Pkg-webkit-commits mailing list