| OLD | NEW |
| 1 /* | 1 /* |
| 2 * Copyright (C) 2006 Apple Computer, Inc. | 2 * Copyright (C) 2006 Apple Computer, Inc. |
| 3 * Copyright (C) Research In Motion Limited 2009-2010. All rights reserved. | 3 * Copyright (C) Research In Motion Limited 2009-2010. All rights reserved. |
| 4 * | 4 * |
| 5 * Portions are Copyright (C) 2001 mozilla.org | 5 * Portions are Copyright (C) 2001 mozilla.org |
| 6 * | 6 * |
| 7 * Other contributors: | 7 * Other contributors: |
| 8 * Stuart Parmenter <stuart@mozilla.com> | 8 * Stuart Parmenter <stuart@mozilla.com> |
| 9 * | 9 * |
| 10 * This library is free software; you can redistribute it and/or | 10 * This library is free software; you can redistribute it and/or |
| (...skipping 194 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 205 // Initialize the framebuffer if needed. | 205 // Initialize the framebuffer if needed. |
| 206 ImageFrame& buffer = m_frameBufferCache[0]; | 206 ImageFrame& buffer = m_frameBufferCache[0]; |
| 207 if (buffer.getStatus() == ImageFrame::FrameEmpty) { | 207 if (buffer.getStatus() == ImageFrame::FrameEmpty) { |
| 208 png_structp png = m_reader->pngPtr(); | 208 png_structp png = m_reader->pngPtr(); |
| 209 if (!buffer.setSizeAndColorSpace(size().width(), size().height(), | 209 if (!buffer.setSizeAndColorSpace(size().width(), size().height(), |
| 210 colorSpaceForSkImages())) { | 210 colorSpaceForSkImages())) { |
| 211 longjmp(JMPBUF(png), 1); | 211 longjmp(JMPBUF(png), 1); |
| 212 return; | 212 return; |
| 213 } | 213 } |
| 214 | 214 |
| 215 buffer.zeroFillPixelData(); |
| 216 |
| 215 unsigned colorChannels = m_reader->hasAlpha() ? 4 : 3; | 217 unsigned colorChannels = m_reader->hasAlpha() ? 4 : 3; |
| 216 if (PNG_INTERLACE_ADAM7 == | 218 if (PNG_INTERLACE_ADAM7 == |
| 217 png_get_interlace_type(png, m_reader->infoPtr())) { | 219 png_get_interlace_type(png, m_reader->infoPtr())) { |
| 218 m_reader->createInterlaceBuffer(colorChannels * size().width() * | 220 m_reader->createInterlaceBuffer(colorChannels * size().width() * |
| 219 size().height()); | 221 size().height()); |
| 220 if (!m_reader->interlaceBuffer()) { | 222 if (!m_reader->interlaceBuffer()) { |
| 221 longjmp(JMPBUF(png), 1); | 223 longjmp(JMPBUF(png), 1); |
| 222 return; | 224 return; |
| 223 } | 225 } |
| 224 } | 226 } |
| (...skipping 138 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 363 // has failed. | 365 // has failed. |
| 364 if (!m_reader->decode(*m_data, onlySize) && isAllDataReceived()) | 366 if (!m_reader->decode(*m_data, onlySize) && isAllDataReceived()) |
| 365 setFailed(); | 367 setFailed(); |
| 366 | 368 |
| 367 // If decoding is done or failed, we don't need the PNGImageReader anymore. | 369 // If decoding is done or failed, we don't need the PNGImageReader anymore. |
| 368 if (isComplete(this) || failed()) | 370 if (isComplete(this) || failed()) |
| 369 m_reader.reset(); | 371 m_reader.reset(); |
| 370 } | 372 } |
| 371 | 373 |
| 372 } // namespace blink | 374 } // namespace blink |
| OLD | NEW |