Index: src/images/SkImageRef.cpp |
diff --git a/src/images/SkImageRef.cpp b/src/images/SkImageRef.cpp |
index 299166c31ccc4a50c3a6402535c45abcab5ef44f..8785ab3854a7684f73a2e98309f02872837f430d 100644 |
--- a/src/images/SkImageRef.cpp |
+++ b/src/images/SkImageRef.cpp |
@@ -107,7 +107,10 @@ bool SkImageRef::prepareBitmap(SkImageDecoder::Mode mode) { |
SkASSERT(fBitmap.getPixels() == NULL); |
- fStream->rewind(); |
+ if (!fStream->rewind()) { |
+ SkDEBUGF(("Failed to rewind SkImageRef stream!")); |
+ return false; |
+ } |
SkImageDecoder* codec; |
if (fFactory) { |
@@ -184,6 +187,15 @@ void SkImageRef::flatten(SkFlattenableWriteBuffer& buffer) const { |
buffer.writeUInt(fConfig); |
buffer.writeInt(fSampleSize); |
buffer.writeBool(fDoDither); |
- fStream->rewind(); |
- buffer.writeStream(fStream, fStream->getLength()); |
+ // FIXME: It seems this logic should go into writeStream itself. |
+ // Not that we have any other streams to write, but if we ever |
+ // do... |
+ if (!fStream->rewind()) { |
+ SkDEBUGF(("Failed to rewind SkImageRef stream!")); |
+ buffer.write32(0); |
+ } else { |
+ // And we need to handle this call to getLength properly as well. |
+ // FIXME: Perhaps this class should take an SkStreamAsset |
+ buffer.writeStream(fStream, fStream->getLength()); |
+ } |
} |