aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/effects/SkDashPathEffect.cpp
diff options
context:
space:
mode:
authorGravatar reed <reed@google.com>2016-02-20 14:18:27 -0800
committerGravatar Commit bot <commit-bot@chromium.org>2016-02-20 14:18:27 -0800
commit00bea4ad310c4ec4dd95809b47ce3fbfa8fd0e1e (patch)
tree8c7e11efbc4c108252a219c763010d5035b10846 /src/effects/SkDashPathEffect.cpp
parentf5d4746ad73ef5eabc927d3d988bb9ee97c77921 (diff)
fix misc asserts and checks found by fuzzer
Diffstat (limited to 'src/effects/SkDashPathEffect.cpp')
-rw-r--r--src/effects/SkDashPathEffect.cpp14
1 files changed, 14 insertions, 0 deletions
diff --git a/src/effects/SkDashPathEffect.cpp b/src/effects/SkDashPathEffect.cpp
index 6e10e5466d..ced0aab69a 100644
--- a/src/effects/SkDashPathEffect.cpp
+++ b/src/effects/SkDashPathEffect.cpp
@@ -384,3 +384,17 @@ void SkDashPathEffect::toString(SkString* str) const {
str->appendf("))");
}
#endif
+
+//////////////////////////////////////////////////////////////////////////////////////////////////
+
+SkPathEffect* SkDashPathEffect::Create(const SkScalar intervals[], int count, SkScalar phase) {
+ if ((count < 2) || !SkIsAlign2(count)) {
+ return nullptr;
+ }
+ for (int i = 0; i < count; i++) {
+ if (intervals[i] < 0) {
+ return nullptr;
+ }
+ }
+ return new SkDashPathEffect(intervals, count, phase);
+}