Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(1506)

Unified Diff: Source/platform/image-decoders/bmp/BMPImageDecoder.cpp

Issue 1259083003: Do not consolidate data in BMPImageDecoder (Closed) Base URL: https://chromium.googlesource.com/chromium/blink.git@SegmentedBuffer
Patch Set: Do not use a raw pointer Created 5 years, 3 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
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.
« no previous file with comments | « Source/platform/image-decoders/bmp/BMPImageDecoder.h ('k') | Source/platform/image-decoders/bmp/BMPImageReader.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698