aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/core/SkRegion.cpp
diff options
context:
space:
mode:
authorGravatar Mike Reed <reed@google.com>2018-01-16 13:29:18 -0500
committerGravatar Skia Commit-Bot <skia-commit-bot@chromium.org>2018-01-16 20:41:14 +0000
commit0ec7dc7a1bd5e9643c96c60b0d148c80c728fdae (patch)
tree5e5fed94f4edf6edcde033263e518fdd232f9aec /src/core/SkRegion.cpp
parent42ee2845673c38f6d70f0d8ddf7e26dce8aa61d3 (diff)
detect if the computed rgn bounds is too big
Bug:801869 Change-Id: I7380bfb86aedc719cf67e20e918ef39d1b143aee Reviewed-on: https://skia-review.googlesource.com/95020 Commit-Queue: Mike Reed <reed@google.com> Reviewed-by: Mike Klein <mtklein@google.com>
Diffstat (limited to 'src/core/SkRegion.cpp')
-rw-r--r--src/core/SkRegion.cpp5
1 files changed, 5 insertions, 0 deletions
diff --git a/src/core/SkRegion.cpp b/src/core/SkRegion.cpp
index 8c402e9250..3a1a63e187 100644
--- a/src/core/SkRegion.cpp
+++ b/src/core/SkRegion.cpp
@@ -289,6 +289,11 @@ bool SkRegion::setRuns(RunType runs[], int count) {
memcpy(fRunHead->writable_runs(), runs, count * sizeof(RunType));
fRunHead->computeRunBounds(&fBounds);
+ // Our computed bounds might be too large, so we have to check here.
+ if (fBounds.isEmpty()) {
+ return this->setEmpty();
+ }
+
SkDEBUGCODE(this->validate();)
return true;