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