| Index: src/utils/SkParsePath.cpp
|
| diff --git a/src/utils/SkParsePath.cpp b/src/utils/SkParsePath.cpp
|
| index 3eb9e1ef798e26abfcbe6c87345e75592919a712..c0f39aa06fd74b93d4989234472ea4c7496211cf 100644
|
| --- a/src/utils/SkParsePath.cpp
|
| +++ b/src/utils/SkParsePath.cpp
|
| @@ -64,6 +64,7 @@ static const char* find_scalar(const char str[], SkScalar* value,
|
| if (isRelative) {
|
| *value += relative;
|
| }
|
| + str = skip_sep(str);
|
| return str;
|
| }
|
|
|
| @@ -156,6 +157,17 @@ bool SkParsePath::FromSVGString(const char data[], SkPath* result) {
|
| lastc = points[0];
|
| c = points[1];
|
| break;
|
| + case 'A': {
|
| + SkPoint radii;
|
| + data = find_points(data, &radii, 1, false, nullptr);
|
| + SkScalar angle, largeArc, sweep;
|
| + data = find_scalar(data, &angle, false, 0);
|
| + data = find_scalar(data, &largeArc, false, 0);
|
| + data = find_scalar(data, &sweep, false, 0);
|
| + data = find_points(data, &points[0], 1, relative, &c);
|
| + path.arcTo(radii, angle, (SkPath::ArcSize) SkToBool(largeArc),
|
| + (SkPath::Direction) !SkToBool(sweep), points[0]);
|
| + } break;
|
| case 'Z':
|
| path.close();
|
| #if 0 // !!! still a bug?
|
|
|