Title: [89276] releases/WebKitGTK/webkit-1.4/Source/WebCore

Diff

Modified: releases/WebKitGTK/webkit-1.4/Source/WebCore/ChangeLog (89275 => 89276)


--- releases/WebKitGTK/webkit-1.4/Source/WebCore/ChangeLog	2011-06-20 19:37:17 UTC (rev 89275)
+++ releases/WebKitGTK/webkit-1.4/Source/WebCore/ChangeLog	2011-06-20 19:38:32 UTC (rev 89276)
@@ -1,3 +1,20 @@
+2011-06-20  Thomas Klausner  <[email protected]>
+
+        Reviewed by David Levin.
+
+        png-1.5 fixes
+        https://bugs.webkit.org/show_bug.cgi?id=54406
+
+        Fix compilation with png-1.5: struct members were hidden, and
+        a new API to terminate data processing was added (especially for
+        WebKit).
+
+        Compilation fixes, so no new tests.
+
+        * platform/image-decoders/png/PNGImageDecoder.cpp:
+        (WebCore::PNGImageDecoder::headerAvailable):
+        (WebCore::PNGImageDecoder::rowAvailable):
+
 2011-06-20  Xan Lopez  <[email protected]>
 
         Reviewed by Martin Robinson.

Modified: releases/WebKitGTK/webkit-1.4/Source/WebCore/platform/image-decoders/png/PNGImageDecoder.cpp (89275 => 89276)


--- releases/WebKitGTK/webkit-1.4/Source/WebCore/platform/image-decoders/png/PNGImageDecoder.cpp	2011-06-20 19:37:17 UTC (rev 89275)
+++ releases/WebKitGTK/webkit-1.4/Source/WebCore/platform/image-decoders/png/PNGImageDecoder.cpp	2011-06-20 19:38:32 UTC (rev 89276)
@@ -241,11 +241,11 @@
 {
     png_structp png = m_reader->pngPtr();
     png_infop info = m_reader->infoPtr();
-    png_uint_32 width = png->width;
-    png_uint_32 height = png->height;
+    png_uint_32 width = png_get_image_width(png, info);
+    png_uint_32 height = png_get_image_height(png, info);
     
     // Protect against large images.
-    if (png->width > cMaxPNGSize || png->height > cMaxPNGSize) {
+    if (width > cMaxPNGSize || height > cMaxPNGSize) {
         longjmp(JMPBUF(png), 1);
         return;
     }
@@ -318,9 +318,14 @@
     m_reader->setHasAlpha(channels == 4);
 
     if (m_reader->decodingSizeOnly()) {
-        // If we only needed the size, halt the reader.     
+        // If we only needed the size, halt the reader.
+#if defined(PNG_LIBPNG_VER_MAJOR) && defined(PNG_LIBPNG_VER_MINOR) && (PNG_LIBPNG_VER_MAJOR > 1 || (PNG_LIBPNG_VER_MAJOR == 1 && PNG_LIBPNG_VER_MINOR >= 5))
+        // '0' argument to png_process_data_pause means: Do not cache unprocessed data.
+        m_reader->setReadOffset(m_reader->currentBufferSize() - png_process_data_pause(png, 0));
+#else
         m_reader->setReadOffset(m_reader->currentBufferSize() - png->buffer_size);
         png->buffer_size = 0;
+#endif
     }
 }
 
@@ -343,7 +348,7 @@
         // For PNGs, the frame always fills the entire image.
         buffer.setOriginalFrameRect(IntRect(IntPoint(), size()));
 
-        if (m_reader->pngPtr()->interlaced)
+        if (png_get_interlace_type(m_reader->pngPtr(), m_reader->infoPtr()) != PNG_INTERLACE_NONE)
             m_reader->createInterlaceBuffer((m_reader->hasAlpha() ? 4 : 3) * size().width() * size().height());
     }
 
_______________________________________________
webkit-changes mailing list
[email protected]
http://lists.webkit.org/mailman/listinfo.cgi/webkit-changes

Reply via email to