]> git.pld-linux.org Git - packages/gtk-webkit.git/blame - webkit-gtk-1.2.7-libpng15.patch
- rel 10; png fix
[packages/gtk-webkit.git] / webkit-gtk-1.2.7-libpng15.patch
CommitLineData
8c431190
AM
1--- WebCore/platform/image-decoders/png/PNGImageDecoder.cpp
2+++ WebCore/platform/image-decoders/png/PNGImageDecoder.cpp
3@@ -242,9 +242,9 @@
4 png_structp png = m_reader->pngPtr();
5 png_infop info = m_reader->infoPtr();
6- png_uint_32 width = png->width;
7- png_uint_32 height = png->height;
8+ png_uint_32 width = png_get_image_width(png, info);
9+ png_uint_32 height = png_get_image_height(png, info);
10
11 // Protect against large images.
12- if (png->width > cMaxPNGSize || png->height > cMaxPNGSize) {
13+ if (width > cMaxPNGSize || height > cMaxPNGSize) {
14 longjmp(JMPBUF(png), 1);
15 return;
16@@ -319,7 +319,12 @@
17
18 if (m_reader->decodingSizeOnly()) {
19- // If we only needed the size, halt the reader.
20+ // If we only needed the size, halt the reader.
21+#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))
22+ // '0' argument to png_process_data_pause means: Do not cache unprocessed data.
23+ m_reader->setReadOffset(m_reader->currentBufferSize() - png_process_data_pause(png, 0));
24+#else
25 m_reader->setReadOffset(m_reader->currentBufferSize() - png->buffer_size);
26 png->buffer_size = 0;
27+#endif
28 }
29 }
30@@ -344,5 +349,5 @@
31 buffer.setOriginalFrameRect(IntRect(IntPoint(), size()));
32
33- if (m_reader->pngPtr()->interlaced)
34+ if (png_get_interlace_type(m_reader->pngPtr(), m_reader->infoPtr()) != PNG_INTERLACE_NONE)
35 m_reader->createInterlaceBuffer((m_reader->hasAlpha() ? 4 : 3) * size().width() * size().height());
36 }
This page took 0.083409 seconds and 4 git commands to generate.