diff options
Diffstat (limited to 'src/pathops/SkReduceOrder.cpp')
-rw-r--r-- | src/pathops/SkReduceOrder.cpp | 12 |
1 files changed, 4 insertions, 8 deletions
diff --git a/src/pathops/SkReduceOrder.cpp b/src/pathops/SkReduceOrder.cpp index ab85f3dd3e..3dfdc9daee 100644 --- a/src/pathops/SkReduceOrder.cpp +++ b/src/pathops/SkReduceOrder.cpp @@ -425,31 +425,27 @@ int SkReduceOrder::reduce(const SkDCubic& cubic, Quadratics allowQuadratics, return 4; } -SkPath::Verb SkReduceOrder::Quad(const SkPoint a[3], SkTArray<SkPoint, true>* reducePts) { +SkPath::Verb SkReduceOrder::Quad(const SkPoint a[3], SkPoint* reducePts) { SkDQuad quad; quad.set(a); SkReduceOrder reducer; int order = reducer.reduce(quad, kFill_Style); if (order == 2) { // quad became line for (int index = 0; index < order; ++index) { - SkPoint& pt = reducePts->push_back(); - pt.fX = SkDoubleToScalar(reducer.fLine[index].fX); - pt.fY = SkDoubleToScalar(reducer.fLine[index].fY); + *reducePts++ = reducer.fLine[index].asSkPoint(); } } return SkPathOpsPointsToVerb(order - 1); } -SkPath::Verb SkReduceOrder::Cubic(const SkPoint a[4], SkTArray<SkPoint, true>* reducePts) { +SkPath::Verb SkReduceOrder::Cubic(const SkPoint a[4], SkPoint* reducePts) { SkDCubic cubic; cubic.set(a); SkReduceOrder reducer; int order = reducer.reduce(cubic, kAllow_Quadratics, kFill_Style); if (order == 2 || order == 3) { // cubic became line or quad for (int index = 0; index < order; ++index) { - SkPoint& pt = reducePts->push_back(); - pt.fX = SkDoubleToScalar(reducer.fQuad[index].fX); - pt.fY = SkDoubleToScalar(reducer.fQuad[index].fY); + *reducePts++ = reducer.fQuad[index].asSkPoint(); } } return SkPathOpsPointsToVerb(order - 1); |