Index: src/core/SkBitmap.cpp |
diff --git a/src/core/SkBitmap.cpp b/src/core/SkBitmap.cpp |
index 96d683c0e2592765351bcf5e9912085b660093a6..3418fad7f197e1014fe63243a1571ee083178363 100644 |
--- a/src/core/SkBitmap.cpp |
+++ b/src/core/SkBitmap.cpp |
@@ -1566,11 +1566,13 @@ void SkBitmap::unflatten(SkReadBuffer& buffer) { |
SkImageInfo info; |
info.unflatten(buffer); |
size_t rowBytes = buffer.readInt(); |
- buffer.validate((info.width() >= 0) && (info.height() >= 0) && |
- SkColorTypeIsValid(info.fColorType) && |
- SkAlphaTypeIsValid(info.fAlphaType) && |
- validate_alphaType(info.fColorType, info.fAlphaType) && |
- info.validRowBytes(rowBytes)); |
+ if (!buffer.validate((info.width() >= 0) && (info.height() >= 0) && |
+ SkColorTypeIsValid(info.fColorType) && |
+ SkAlphaTypeIsValid(info.fAlphaType) && |
+ validate_alphaType(info.fColorType, info.fAlphaType) && |
+ info.validRowBytes(rowBytes))) { |
+ return; |
+ } |
bool configIsValid = this->setConfig(info, rowBytes); |
buffer.validate(configIsValid); |