Chromium Code Reviews| Index: src/images/SkImageDecoder_libbmp.cpp |
| diff --git a/src/images/SkImageDecoder_libbmp.cpp b/src/images/SkImageDecoder_libbmp.cpp |
| index 179162356aec980067ee6548c228d13d967b0cc0..4a6f71c82db06a383009343825dca99838a56d5a 100644 |
| --- a/src/images/SkImageDecoder_libbmp.cpp |
| +++ b/src/images/SkImageDecoder_libbmp.cpp |
| @@ -9,6 +9,7 @@ |
| #include "bmpdecoderhelper.h" |
| #include "SkColorPriv.h" |
| +#include "SkData.h" |
| #include "SkImageDecoder.h" |
| #include "SkScaledBitmapSampler.h" |
| #include "SkStream.h" |
| @@ -96,10 +97,13 @@ SkImageDecoder::Result SkBMPImageDecoder::onDecode(SkStream* stream, SkBitmap* b |
| // First read the entire stream, so that all of the data can be passed to |
| // the BmpDecoderHelper. |
| - // Allocated space used to hold the data. |
| - SkAutoMalloc storage; |
| + SkAutoTUnref<SkData> data(SkCopyStreamToData(stream)); |
|
scroggo
2016/01/19 15:19:39
I think we'll need this one to support Corey until
msarett
2016/01/19 15:32:24
Acknowledged.
|
| + if (!data) { |
| + return kFailure; |
| + } |
| + |
| // Byte length of all of the data. |
| - const size_t length = SkCopyStreamToStorage(&storage, stream); |
| + const size_t length = data->size(); |
| if (0 == length) { |
| return kFailure; |
| } |
| @@ -111,7 +115,7 @@ SkImageDecoder::Result SkBMPImageDecoder::onDecode(SkStream* stream, SkBitmap* b |
| { |
| image_codec::BmpDecoderHelper helper; |
| const int max_pixels = 16383*16383; // max width*height |
| - if (!helper.DecodeImage((const char*)storage.get(), length, |
| + if (!helper.DecodeImage((const char*) data->data(), length, |
| max_pixels, &callback)) { |
| return kFailure; |
| } |
| @@ -119,7 +123,7 @@ SkImageDecoder::Result SkBMPImageDecoder::onDecode(SkStream* stream, SkBitmap* b |
| // we don't need this anymore, so free it now (before we try to allocate |
| // the bitmap's pixels) rather than waiting for its destructor |
| - storage.free(); |
| + data.reset(nullptr); |
| int width = callback.width(); |
| int height = callback.height(); |