Index: src/images/SkImageDecoder_libgif.cpp |
diff --git a/src/images/SkImageDecoder_libgif.cpp b/src/images/SkImageDecoder_libgif.cpp |
index f81c601093851a9ed77611737572167f4ee98211..434a296d5e86405f3d6feadf2a4e515bc39526f1 100644 |
--- a/src/images/SkImageDecoder_libgif.cpp |
+++ b/src/images/SkImageDecoder_libgif.cpp |
@@ -201,11 +201,18 @@ bool SkGIFImageDecoder::onDecode(SkStream* sk_stream, SkBitmap* bm, Mode mode) { |
width, height)) { |
return error_return(gif, *bm, "chooseFromOneChoice"); |
} |
- |
- bm->setConfig(SkBitmap::kIndex8_Config, width, height); |
- if (SkImageDecoder::kDecodeBounds_Mode == mode) |
+ |
+ if (SkImageDecoder::kDecodeBounds_Mode == mode) { |
+ bm->setConfig(SkBitmap::kIndex8_Config, width, height); |
return true; |
+ } |
+ // No Bitmap reuse supported for this format |
+ if (!bm->isNull()) { |
+ return false; |
+ } |
+ |
+ bm->setConfig(SkBitmap::kIndex8_Config, width, height); |
SavedImage* image = &gif->SavedImages[gif->ImageCount-1]; |
const GifImageDesc& desc = image->ImageDesc; |