| Index: Source/platform/image-decoders/bmp/BMPImageDecoder.cpp
|
| diff --git a/Source/platform/image-decoders/bmp/BMPImageDecoder.cpp b/Source/platform/image-decoders/bmp/BMPImageDecoder.cpp
|
| index f08295962ff2f8a2c87379fa46d3d5a2a71b6e01..17d52fbe8bd7b564342433fcdd2a4d5113d136c2 100644
|
| --- a/Source/platform/image-decoders/bmp/BMPImageDecoder.cpp
|
| +++ b/Source/platform/image-decoders/bmp/BMPImageDecoder.cpp
|
| @@ -31,6 +31,7 @@
|
| #include "config.h"
|
| #include "platform/image-decoders/bmp/BMPImageDecoder.h"
|
|
|
| +#include "platform/image-decoders/FastSharedBufferReader.h"
|
| #include "wtf/PassOwnPtr.h"
|
|
|
| namespace blink {
|
| @@ -100,8 +101,12 @@ bool BMPImageDecoder::processFileHeader(size_t& imgDataOffset)
|
| ASSERT(!m_decodedOffset);
|
| if (m_data->size() < sizeOfFileHeader)
|
| return false;
|
| - const uint16_t fileType = (m_data->data()[0] << 8) | static_cast<uint8_t>(m_data->data()[1]);
|
| - imgDataOffset = readUint32(10);
|
| +
|
| + char buffer[sizeOfFileHeader];
|
| + FastSharedBufferReader fastReader(m_data);
|
| + const char* fileHeader = fastReader.getConsecutiveData(0, sizeOfFileHeader, buffer);
|
| + const uint16_t fileType = (fileHeader[0] << 8) | static_cast<uint8_t>(fileHeader[1]);
|
| + imgDataOffset = BMPImageReader::readUint32(&fileHeader[10]);
|
| m_decodedOffset = sizeOfFileHeader;
|
|
|
| // See if this is a bitmap filetype we understand.
|
|
|