diff options
author | reed <reed@google.com> | 2016-02-22 06:34:47 -0800 |
---|---|---|
committer | Commit bot <commit-bot@chromium.org> | 2016-02-22 06:34:47 -0800 |
commit | 653db51b440491b0fb1908bf5a43dcc89c90044d (patch) | |
tree | aeb0b70eca04c99db9018c28e5108246d3ddfe4a /include/core/SkPathEffect.h | |
parent | 1d56448400c1da722a9b34c80ff4a9e46dc3c173 (diff) |
fix misc asserts and checks found by fuzzer
BUG=skia:
GOLD_TRYBOT_URL= https://gold.skia.org/search2?unt=true&query=source_type%3Dgm&master=false&issue=1713383002
TBR=
Review URL: https://codereview.chromium.org/1719913002
Diffstat (limited to 'include/core/SkPathEffect.h')
-rw-r--r-- | include/core/SkPathEffect.h | 16 |
1 files changed, 14 insertions, 2 deletions
diff --git a/include/core/SkPathEffect.h b/include/core/SkPathEffect.h index bd68c8fa72..a77b9467e4 100644 --- a/include/core/SkPathEffect.h +++ b/include/core/SkPathEffect.h @@ -183,7 +183,13 @@ public: The reference counts for outer and inner are both incremented in the constructor, and decremented in the destructor. */ - static SkComposePathEffect* Create(SkPathEffect* outer, SkPathEffect* inner) { + static SkPathEffect* Create(SkPathEffect* outer, SkPathEffect* inner) { + if (!outer) { + return SkSafeRef(inner); + } + if (!inner) { + return SkSafeRef(outer); + } return new SkComposePathEffect(outer, inner); } @@ -220,7 +226,13 @@ public: The reference counts for first and second are both incremented in the constructor, and decremented in the destructor. */ - static SkSumPathEffect* Create(SkPathEffect* first, SkPathEffect* second) { + static SkPathEffect* Create(SkPathEffect* first, SkPathEffect* second) { + if (!first) { + return SkSafeRef(second); + } + if (!second) { + return SkSafeRef(first); + } return new SkSumPathEffect(first, second); } |