diff options
author | Lorry Tar Creator <lorry-tar-importer@lorry> | 2017-06-27 06:07:23 +0000 |
---|---|---|
committer | Lorry Tar Creator <lorry-tar-importer@lorry> | 2017-06-27 06:07:23 +0000 |
commit | 1bf1084f2b10c3b47fd1a588d85d21ed0eb41d0c (patch) | |
tree | 46dcd36c86e7fbc6e5df36deb463b33e9967a6f7 /Source/WebCore/platform/image-decoders/bmp/BMPImageDecoder.cpp | |
parent | 32761a6cee1d0dee366b885b7b9c777e67885688 (diff) | |
download | WebKitGtk-tarball-master.tar.gz |
webkitgtk-2.16.5HEADwebkitgtk-2.16.5master
Diffstat (limited to 'Source/WebCore/platform/image-decoders/bmp/BMPImageDecoder.cpp')
-rw-r--r-- | Source/WebCore/platform/image-decoders/bmp/BMPImageDecoder.cpp | 22 |
1 files changed, 9 insertions, 13 deletions
diff --git a/Source/WebCore/platform/image-decoders/bmp/BMPImageDecoder.cpp b/Source/WebCore/platform/image-decoders/bmp/BMPImageDecoder.cpp index 6011b65bc..368bccad2 100644 --- a/Source/WebCore/platform/image-decoders/bmp/BMPImageDecoder.cpp +++ b/Source/WebCore/platform/image-decoders/bmp/BMPImageDecoder.cpp @@ -32,7 +32,6 @@ #include "BMPImageDecoder.h" #include "BMPImageReader.h" -#include <wtf/PassOwnPtr.h> namespace WebCore { @@ -41,21 +40,20 @@ namespace WebCore { // don't pack). static const size_t sizeOfFileHeader = 14; -BMPImageDecoder::BMPImageDecoder(ImageSource::AlphaOption alphaOption, - ImageSource::GammaAndColorProfileOption gammaAndColorProfileOption) +BMPImageDecoder::BMPImageDecoder(AlphaOption alphaOption, GammaAndColorProfileOption gammaAndColorProfileOption) : ImageDecoder(alphaOption, gammaAndColorProfileOption) , m_decodedOffset(0) { } -void BMPImageDecoder::setData(SharedBuffer* data, bool allDataReceived) +void BMPImageDecoder::setData(SharedBuffer& data, bool allDataReceived) { if (failed()) return; ImageDecoder::setData(data, allDataReceived); if (m_reader) - m_reader->setData(data); + m_reader->setData(&data); } bool BMPImageDecoder::isSizeAvailable() @@ -71,20 +69,18 @@ ImageFrame* BMPImageDecoder::frameBufferAtIndex(size_t index) if (index) return 0; - if (m_frameBufferCache.isEmpty()) { + if (m_frameBufferCache.isEmpty()) m_frameBufferCache.resize(1); - m_frameBufferCache.first().setPremultiplyAlpha(m_premultiplyAlpha); - } ImageFrame* buffer = &m_frameBufferCache.first(); - if (buffer->status() != ImageFrame::FrameComplete) + if (!buffer->isComplete()) decode(false); return buffer; } bool BMPImageDecoder::setFailed() { - m_reader.clear(); + m_reader = nullptr; return ImageDecoder::setFailed(); } @@ -99,8 +95,8 @@ void BMPImageDecoder::decode(bool onlySize) setFailed(); // If we're done decoding the image, we don't need the BMPImageReader // anymore. (If we failed, |m_reader| has already been cleared.) - else if (!m_frameBufferCache.isEmpty() && (m_frameBufferCache.first().status() == ImageFrame::FrameComplete)) - m_reader.clear(); + else if (!m_frameBufferCache.isEmpty() && m_frameBufferCache.first().isComplete()) + m_reader = nullptr; } bool BMPImageDecoder::decodeHelper(bool onlySize) @@ -110,7 +106,7 @@ bool BMPImageDecoder::decodeHelper(bool onlySize) return false; if (!m_reader) { - m_reader = adoptPtr(new BMPImageReader(this, m_decodedOffset, imgDataOffset, false)); + m_reader = std::make_unique<BMPImageReader>(this, m_decodedOffset, imgDataOffset, false); m_reader->setData(m_data.get()); } |