| Index: src/pathops/SkOpContour.cpp
|
| diff --git a/src/pathops/SkOpContour.cpp b/src/pathops/SkOpContour.cpp
|
| index 3b2318c306c5b88e55403907182a39dfb7dcc11d..981bd29573cc9981d0c7a8b2e5621201ec82e3d4 100644
|
| --- a/src/pathops/SkOpContour.cpp
|
| +++ b/src/pathops/SkOpContour.cpp
|
| @@ -10,7 +10,7 @@
|
| #include "SkReduceOrder.h"
|
| #include "SkTSort.h"
|
|
|
| -SkOpSegment* SkOpContour::addCurve(SkPath::Verb verb, const SkPoint pts[4]) {
|
| +SkOpSegment* SkOpContour::addCurve(SkPath::Verb verb, const SkPoint pts[4], SkScalar weight) {
|
| SkChunkAlloc* allocator = this->globalState()->allocator();
|
| switch (verb) {
|
| case SkPath::kLine_Verb: {
|
| @@ -24,7 +24,9 @@ SkOpSegment* SkOpContour::addCurve(SkPath::Verb verb, const SkPoint pts[4]) {
|
| return appendSegment().addQuad(ptStorage, this);
|
| } break;
|
| case SkPath::kConic_Verb: {
|
| - SkASSERT(0); // the original curve is a cubic, which will never reduce to a conic
|
| + SkPoint* ptStorage = SkOpTAllocator<SkPoint>::AllocateArray(allocator, 3);
|
| + memcpy(ptStorage, pts, sizeof(SkPoint) * 3);
|
| + return appendSegment().addConic(ptStorage, weight, this);
|
| } break;
|
| case SkPath::kCubic_Verb: {
|
| SkPoint* ptStorage = SkOpTAllocator<SkPoint>::AllocateArray(allocator, 4);
|
|
|