summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAllan Sandfeld Jensen <allan.jensen@qt.io>2018-04-20 17:29:29 +0200
committerAllan Sandfeld Jensen <allan.jensen@qt.io>2018-04-23 08:09:27 +0000
commit7ae5eb61882cfc26120b4c712cf4ceb807b36cbc (patch)
tree8a1befd1661b94a974e9008a7339bcc2f19a02b9
parent1f64262b5d3052f81f0976b74b06cea7fdba78a0 (diff)
init out-param on buffer failurev5.11.0-rc1
Bug:804651 Reviewed-on: https://skia-review.googlesource.com/98663 Reviewed-by: Robert Phillips <robertphillips@google.com> Commit-Queue: Mike Reed <reed@google.com> Change-Id: I9b827d11e5c2d92fa087c879c35f130a9647bcc6 Reviewed-by: Michael BrĂ¼ning <michael.bruning@qt.io>
-rw-r--r--chromium/third_party/skia/src/core/SkReadBuffer.cpp12
1 files changed, 9 insertions, 3 deletions
diff --git a/chromium/third_party/skia/src/core/SkReadBuffer.cpp b/chromium/third_party/skia/src/core/SkReadBuffer.cpp
index 8da4089a17f..d82ec4a0462 100644
--- a/chromium/third_party/skia/src/core/SkReadBuffer.cpp
+++ b/chromium/third_party/skia/src/core/SkReadBuffer.cpp
@@ -182,7 +182,9 @@ void SkReadBuffer::readMatrix(SkMatrix* matrix) {
size_t size = 0;
if (this->isValid()) {
size = SkMatrixPriv::ReadFromMemory(matrix, fReader.peek(), fReader.available());
- this->validate((SkAlign4(size) == size) && (0 != size));
+ if (!this->validate((SkAlign4(size) == size) && (0 != size))) {
+ matrix->reset();
+ }
}
(void)this->skip(size);
}
@@ -209,7 +211,9 @@ void SkReadBuffer::readRegion(SkRegion* region) {
size_t size = 0;
if (!fError) {
size = region->readFromMemory(fReader.peek(), fReader.available());
- this->validate((SkAlign4(size) == size) && (0 != size));
+ if (!this->validate((SkAlign4(size) == size) && (0 != size))) {
+ region->setEmpty();
+ }
}
(void)this->skip(size);
}
@@ -218,7 +222,9 @@ void SkReadBuffer::readPath(SkPath* path) {
size_t size = 0;
if (!fError) {
size = path->readFromMemory(fReader.peek(), fReader.available());
- this->validate((SkAlign4(size) == size) && (0 != size));
+ if (!this->validate((SkAlign4(size) == size) && (0 != size))) {
+ path->reset();
+ }
}
(void)this->skip(size);
}