Index: src/images/SkImageDecoder_libbmp.cpp |
diff --git a/src/images/SkImageDecoder_libbmp.cpp b/src/images/SkImageDecoder_libbmp.cpp |
index 3aa834a6b567182e30646d89519b12f14133c21e..1dcea8ad64c38bc7b8cbc06ec9a3ad6e7b5fabc6 100644 |
--- a/src/images/SkImageDecoder_libbmp.cpp |
+++ b/src/images/SkImageDecoder_libbmp.cpp |
@@ -19,12 +19,15 @@ class SkBMPImageDecoder : public SkImageDecoder { |
public: |
SkBMPImageDecoder() {} |
- virtual Format getFormat() const { |
+ virtual Format getFormat() const SK_OVERRIDE { |
return kBMP_Format; |
} |
protected: |
- virtual bool onDecode(SkStream* stream, SkBitmap* bm, Mode mode); |
+ virtual bool onDecode(SkStream* stream, SkBitmap* bm, Mode mode) SK_OVERRIDE; |
+ |
+private: |
+ typedef SkImageDecoder INHERITED; |
}; |
/////////////////////////////////////////////////////////////////////////////// |
@@ -115,11 +118,18 @@ bool SkBMPImageDecoder::onDecode(SkStream* stream, SkBitmap* bm, Mode mode) { |
SkScaledBitmapSampler sampler(width, height, getSampleSize()); |
- bm->setConfig(config, sampler.scaledWidth(), sampler.scaledHeight()); |
- bm->setIsOpaque(true); |
if (justBounds) { |
+ bm->setConfig(config, sampler.scaledWidth(), sampler.scaledHeight()); |
+ bm->setIsOpaque(true); |
return true; |
} |
+ // No Bitmap reuse supported for this format |
+ if (!bm->isNull()) { |
+ return false; |
+ } |
+ |
+ bm->setConfig(config, sampler.scaledWidth(), sampler.scaledHeight()); |
+ bm->setIsOpaque(true); |
if (!this->allocPixelRef(bm, NULL)) { |
return false; |