| 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);
|
|
|