summaryrefslogtreecommitdiffstats
path: root/skia/images/SkImageRef.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'skia/images/SkImageRef.cpp')
-rw-r--r--skia/images/SkImageRef.cpp10
1 files changed, 9 insertions, 1 deletions
diff --git a/skia/images/SkImageRef.cpp b/skia/images/SkImageRef.cpp
index 05960a2..bd7a07d 100644
--- a/skia/images/SkImageRef.cpp
+++ b/skia/images/SkImageRef.cpp
@@ -58,7 +58,7 @@ bool SkImageRef::getInfo(SkBitmap* bitmap) {
bool SkImageRef::onDecode(SkImageDecoder* codec, SkStream* stream,
SkBitmap* bitmap, SkBitmap::Config config,
SkImageDecoder::Mode mode) {
- return codec->onDecode(stream, bitmap, config, mode);
+ return codec->decode(stream, bitmap, config, mode);
}
bool SkImageRef::prepareBitmap(SkImageDecoder::Mode mode) {
@@ -68,6 +68,14 @@ bool SkImageRef::prepareBitmap(SkImageDecoder::Mode mode) {
return false;
}
+ /* As soon as we really know our config, we record it, so that on
+ subsequent calls to the codec, we are sure we will always get the same
+ result.
+ */
+ if (SkBitmap::kNo_Config != fBitmap.config()) {
+ fConfig = fBitmap.config();
+ }
+
if (NULL != fBitmap.getPixels() ||
(SkBitmap::kNo_Config != fBitmap.config() &&
SkImageDecoder::kDecodeBounds_Mode == mode)) {