Index: src/image/SkImage_Codec.cpp |
diff --git a/src/image/SkImage_Codec.cpp b/src/image/SkImage_Codec.cpp |
index 3d815ce7f437409156b94c009a26e733ca77a270..21c844d01dd331b0f4235f215fc11ad494fb84bf 100644 |
--- a/src/image/SkImage_Codec.cpp |
+++ b/src/image/SkImage_Codec.cpp |
@@ -18,8 +18,9 @@ public: |
SkImage_Codec(SkData* encodedData, int width, int height); |
virtual ~SkImage_Codec(); |
- virtual void onDraw(SkCanvas*, SkScalar, SkScalar, const SkPaint*) SK_OVERRIDE; |
- virtual void onDrawRectToRect(SkCanvas*, const SkRect*, const SkRect&, const SkPaint*) SK_OVERRIDE; |
+ virtual void onDraw(SkCanvas*, SkScalar, SkScalar, const SkPaint*) const SK_OVERRIDE; |
+ virtual void onDrawRectToRect(SkCanvas*, const SkRect*, const SkRect&, |
+ const SkPaint*) const SK_OVERRIDE; |
private: |
SkData* fEncodedData; |
@@ -39,19 +40,23 @@ SkImage_Codec::~SkImage_Codec() { |
fEncodedData->unref(); |
} |
-void SkImage_Codec::onDraw(SkCanvas* canvas, SkScalar x, SkScalar y, const SkPaint* paint) { |
+void SkImage_Codec::onDraw(SkCanvas* canvas, SkScalar x, SkScalar y, const SkPaint* paint) const { |
if (!fBitmap.pixelRef()) { |
- if (!SkImageDecoder::DecodeMemory(fEncodedData->bytes(), fEncodedData->size(), &fBitmap)) { |
+ // todo: this needs to be thread-safe |
+ SkBitmap* bitmap = const_cast<SkBitmap*>(&fBitmap); |
+ if (!SkImageDecoder::DecodeMemory(fEncodedData->bytes(), fEncodedData->size(), bitmap)) { |
return; |
} |
} |
canvas->drawBitmap(fBitmap, x, y, paint); |
} |
-void SkImage_Codec::onDrawRectToRect(SkCanvas* canvas, const SkRect* src, |
- const SkRect& dst, const SkPaint* paint) { |
+void SkImage_Codec::onDrawRectToRect(SkCanvas* canvas, const SkRect* src, const SkRect& dst, |
+ const SkPaint* paint) const { |
if (!fBitmap.pixelRef()) { |
- if (!SkImageDecoder::DecodeMemory(fEncodedData->bytes(), fEncodedData->size(), &fBitmap)) { |
+ // todo: this needs to be thread-safe |
+ SkBitmap* bitmap = const_cast<SkBitmap*>(&fBitmap); |
+ if (!SkImageDecoder::DecodeMemory(fEncodedData->bytes(), fEncodedData->size(), bitmap)) { |
return; |
} |
} |