diff options
author | William Pitcock <nenolod@dereferenced.org> | 2011-05-13 12:28:31 -0500 |
---|---|---|
committer | William Pitcock <nenolod@dereferenced.org> | 2011-05-13 12:28:31 -0500 |
commit | bec4079cb7d811d124680ea4a7f4ba2f2f140fd0 (patch) | |
tree | 6f860c287662b60cde66eb68cb804430558b67d2 /main/webkit | |
parent | b03943a2cdacbaf6952c91fa233ea1f8aa121b42 (diff) | |
download | aports-bec4079cb7d811d124680ea4a7f4ba2f2f140fd0.tar.bz2 aports-bec4079cb7d811d124680ea4a7f4ba2f2f140fd0.tar.xz |
main/webkit: add libpng 1.5 support patch
Diffstat (limited to 'main/webkit')
-rw-r--r-- | main/webkit/APKBUILD | 2 | ||||
-rw-r--r-- | main/webkit/libpng-1.5.patch | 48 |
2 files changed, 49 insertions, 1 deletions
diff --git a/main/webkit/APKBUILD b/main/webkit/APKBUILD index 369604bae..67d5f04fb 100644 --- a/main/webkit/APKBUILD +++ b/main/webkit/APKBUILD @@ -18,7 +18,7 @@ makedepends=" install= subpackages="$pkgname-dev gtklauncher" source="http://webkitgtk.org/$pkgname-$pkgver.tar.gz - " + libpng-1.5.patch" depends_dev="gtk+-dev libsoup-dev gstreamer-dev" _builddir="$srcdir"/$pkgname-$pkgver diff --git a/main/webkit/libpng-1.5.patch b/main/webkit/libpng-1.5.patch new file mode 100644 index 000000000..ecf533d6f --- /dev/null +++ b/main/webkit/libpng-1.5.patch @@ -0,0 +1,48 @@ +--- webkit-1.4.0.orig/Source/WebCore/platform/image-decoders/png/PNGImageDecoder.cpp ++++ webkit-1.4.0/Source/WebCore/platform/image-decoders/png/PNGImageDecoder.cpp +@@ -226,7 +226,7 @@ + #ifdef PNG_iCCP_SUPPORTED + char* profileName; + int compressionType; +- char* profile; ++ png_byte* profile; + png_uint_32 profileLength; + if (png_get_iCCP(png, info, &profileName, &compressionType, &profile, &profileLength)) { + ColorProfile colorProfile; +@@ -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,9 @@ + m_reader->setHasAlpha(channels == 4); + + if (m_reader->decodingSizeOnly()) { +- // If we only needed the size, halt the reader. +- m_reader->setReadOffset(m_reader->currentBufferSize() - png->buffer_size); +- png->buffer_size = 0; ++ // If we only needed the size, halt the reader. ++ // '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)); + } + } + +@@ -343,7 +343,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()); + } + |