| Index: third_party/WebKit/Source/web/ImageDecodeBench.cpp
|
| diff --git a/third_party/WebKit/Source/web/ImageDecodeBench.cpp b/third_party/WebKit/Source/web/ImageDecodeBench.cpp
|
| index 6c8ecc1aa7af9bdd100705426c395f9ff6a08b29..375a7be51362fc53f379bfb426d557a7bf5cbddd 100644
|
| --- a/third_party/WebKit/Source/web/ImageDecodeBench.cpp
|
| +++ b/third_party/WebKit/Source/web/ImageDecodeBench.cpp
|
| @@ -23,6 +23,7 @@ http://crbug.com/398235#c103 and http://crbug.com/258324#c5
|
|
|
| #include "platform/SharedBuffer.h"
|
| #include "platform/image-decoders/ImageDecoder.h"
|
| +#include "platform/image-decoders/SharedBufferSegmentReader.h"
|
| #include "platform/testing/TestingPlatformSupport.h"
|
| #include "public/platform/Platform.h"
|
| #include "public/web/WebKit.h"
|
| @@ -266,13 +267,14 @@ PassRefPtr<SharedBuffer> readFile(const char* fileName)
|
|
|
| bool decodeImageData(SharedBuffer* data, bool colorCorrection, size_t packetSize)
|
| {
|
| - OwnPtr<ImageDecoder> decoder = ImageDecoder::create(*data,
|
| + RefPtr<SharedBufferSegmentReader> segmentReader = adoptRef(new SharedBufferSegmentReader(data));
|
| + OwnPtr<ImageDecoder> decoder = ImageDecoder::create(*segmentReader.get(),
|
| ImageDecoder::AlphaPremultiplied, colorCorrection ?
|
| ImageDecoder::GammaAndColorProfileApplied : ImageDecoder::GammaAndColorProfileIgnored);
|
|
|
| if (!packetSize) {
|
| bool allDataReceived = true;
|
| - decoder->setData(data, allDataReceived);
|
| + decoder->setData(segmentReader.get(), allDataReceived);
|
|
|
| int frameCount = decoder->frameCount();
|
| for (int i = 0; i < frameCount; ++i) {
|
| @@ -284,6 +286,7 @@ bool decodeImageData(SharedBuffer* data, bool colorCorrection, size_t packetSize
|
| }
|
|
|
| RefPtr<SharedBuffer> packetData = SharedBuffer::create();
|
| + segmentReader = adoptRef(new SharedBufferSegmentReader(packetData));
|
| unsigned position = 0;
|
| while (true) {
|
| const char* packet;
|
| @@ -294,7 +297,7 @@ bool decodeImageData(SharedBuffer* data, bool colorCorrection, size_t packetSize
|
| position += length;
|
|
|
| bool allDataReceived = position == data->size();
|
| - decoder->setData(packetData.get(), allDataReceived);
|
| + decoder->setData(segmentReader.get(), allDataReceived);
|
|
|
| int frameCount = decoder->frameCount();
|
| for (int i = 0; i < frameCount; ++i) {
|
|
|