| 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 406 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 417 } | 417 } |
| 418 | 418 |
| 419 void PNGImageDecoder::complete() | 419 void PNGImageDecoder::complete() |
| 420 { | 420 { |
| 421 if (m_frameBufferCache.isEmpty()) | 421 if (m_frameBufferCache.isEmpty()) |
| 422 return; | 422 return; |
| 423 | 423 |
| 424 m_frameBufferCache[0].setStatus(ImageFrame::FrameComplete); | 424 m_frameBufferCache[0].setStatus(ImageFrame::FrameComplete); |
| 425 } | 425 } |
| 426 | 426 |
| 427 inline bool isComplete(const PNGImageDecoder* decoder) | |
| 428 { | |
| 429 return decoder->frameIsCompleteAtIndex(0); | |
| 430 } | |
| 431 | |
| 432 void PNGImageDecoder::decode(bool onlySize) | 427 void PNGImageDecoder::decode(bool onlySize) |
| 433 { | 428 { |
| 434 if (failed()) | 429 if (failed()) |
| 435 return; | 430 return; |
| 436 | 431 |
| 437 if (!m_reader) | 432 if (!m_reader) |
| 438 m_reader = adoptPtr(new PNGImageReader(this, m_offset)); | 433 m_reader = adoptPtr(new PNGImageReader(this, m_offset)); |
| 439 | 434 |
| 440 // If we couldn't decode the image but have received all the data, decoding | 435 // If we couldn't decode the image but have received all the data, decoding |
| 441 // has failed. | 436 // has failed. |
| 442 if (!m_reader->decode(*m_data, onlySize) && isAllDataReceived()) | 437 if (!m_reader->decode(*m_data, onlySize) && isAllDataReceived()) |
| 443 setFailed(); | 438 setFailed(); |
| 444 | 439 |
| 445 // If decoding is done or failed, we don't need the PNGImageReader anymore. | 440 // If decoding is done or failed, we don't need the PNGImageReader anymore. |
| 446 if (isComplete(this) || failed()) | 441 if (frameIsCompleteAtIndex(0) || failed()) |
| 447 m_reader.reset(); | 442 m_reader.reset(); |
| 448 } | 443 } |
| 449 | 444 |
| 450 } // namespace blink | 445 } // namespace blink |
| OLD | NEW |