From db085ab30f58928623447676c46d6bd7a8cc2255 Mon Sep 17 00:00:00 2001 From: hstern Date: Tue, 16 Aug 2016 15:10:34 -0700 Subject: [PATCH] Fix bug in cubic derivative coefficient with missing parens BUG=skia: GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2242603002 Review-Url: https://codereview.chromium.org/2242603002 --- src/utils/SkCurveMeasure.cpp | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/src/utils/SkCurveMeasure.cpp b/src/utils/SkCurveMeasure.cpp index 60fbf34ff2..a82008e67e 100644 --- a/src/utils/SkCurveMeasure.cpp +++ b/src/utils/SkCurveMeasure.cpp @@ -106,11 +106,11 @@ ArcLengthIntegrator::ArcLengthIntegrator(const SkPoint* pts, SkSegType segType) float Cy = pts[2].y(); // precompute coefficients for derivative - xCoeff[0] = Sk8f(2.0f*(Ax - 2*Bx + Cx)); - xCoeff[1] = Sk8f(2.0f*(Bx - Ax)); + xCoeff[0] = Sk8f(2*(Ax - 2*Bx + Cx)); + xCoeff[1] = Sk8f(2*(Bx - Ax)); - yCoeff[0] = Sk8f(2.0f*(Ay - 2*By + Cy)); - yCoeff[1] = Sk8f(2.0f*(By - Ay)); + yCoeff[0] = Sk8f(2*(Ay - 2*By + Cy)); + yCoeff[1] = Sk8f(2*(By - Ay)); } break; case kCubic_SegType: @@ -125,13 +125,13 @@ ArcLengthIntegrator::ArcLengthIntegrator(const SkPoint* pts, SkSegType segType) float Dy = pts[3].y(); // precompute coefficients for derivative - xCoeff[0] = Sk8f(3.0f*(-Ax + 3.0f*(Bx - Cx) + Dx)); - xCoeff[1] = Sk8f(3.0f*(2.0f*(Ax - 2.0f*Bx + Cx))); - xCoeff[2] = Sk8f(3.0f*(-Ax + Bx)); + xCoeff[0] = Sk8f(3*(-Ax + 3*(Bx - Cx) + Dx)); + xCoeff[1] = Sk8f(6*(Ax - 2*Bx + Cx)); + xCoeff[2] = Sk8f(3*(-Ax + Bx)); - yCoeff[0] = Sk8f(3.0f*(-Ay + 3.0f*(By - Cy) + Dy)); - yCoeff[1] = Sk8f(3.0f * -Ay + By + 2.0f*(Ay - 2.0f*By + Cy)); - yCoeff[2] = Sk8f(3.0f*(-Ay + By)); + yCoeff[0] = Sk8f(3*(-Ay + 3*(By - Cy) + Dy)); + yCoeff[1] = Sk8f(6*(Ay - 2*By + Cy)); + yCoeff[2] = Sk8f(3*(-Ay + By)); } break; case kConic_SegType: