| Index: src/images/SkImageDecoder_libgif.cpp
|
| diff --git a/src/images/SkImageDecoder_libgif.cpp b/src/images/SkImageDecoder_libgif.cpp
|
| index 81071c95158be16957e20d3fdfb0ad3554ade7ce..e7122d76676ee3d7a5a6411e5535fedfbff28745 100644
|
| --- a/src/images/SkImageDecoder_libgif.cpp
|
| +++ b/src/images/SkImageDecoder_libgif.cpp
|
| @@ -417,6 +417,7 @@ bool SkGIFImageDecoder::onDecode(SkStream* sk_stream, SkBitmap* bm, Mode mode) {
|
| GifInterlaceIter iter(innerHeight);
|
| for (int y = 0; y < innerHeight; y++) {
|
| if (DGifGetLine(gif, scanline, innerWidth) == GIF_ERROR) {
|
| +#ifdef SK_DECODE_PARTIAL_IMAGES
|
| gif_warning(*bm, "interlace DGifGetLine");
|
| memset(scanline, fillIndex, innerWidth);
|
| for (; y < innerHeight; y++) {
|
| @@ -424,6 +425,9 @@ bool SkGIFImageDecoder::onDecode(SkStream* sk_stream, SkBitmap* bm, Mode mode) {
|
| iter.next();
|
| }
|
| return true;
|
| +#else
|
| + return error_return(*bm, "interlace DGifGetLine");
|
| +#endif
|
| }
|
| sampler.sampleInterlaced(scanline, iter.currY());
|
| iter.next();
|
| @@ -434,12 +438,16 @@ bool SkGIFImageDecoder::onDecode(SkStream* sk_stream, SkBitmap* bm, Mode mode) {
|
| skip_src_rows(gif, scanline, innerWidth, sampler.srcY0());
|
| for (int y = 0; y < outHeight; y++) {
|
| if (DGifGetLine(gif, scanline, innerWidth) == GIF_ERROR) {
|
| +#ifdef SK_DECODE_PARTIAL_IMAGES
|
| gif_warning(*bm, "DGifGetLine");
|
| memset(scanline, fillIndex, innerWidth);
|
| for (; y < outHeight; y++) {
|
| sampler.next(scanline);
|
| }
|
| return true;
|
| +#else
|
| + return error_return(*bm, "DGifGetLine");
|
| +#endif
|
| }
|
| // scanline now contains the raw data. Sample it.
|
| sampler.next(scanline);
|
|
|