From 5e1a24808415df2748822e8082e21a361362cdfe Mon Sep 17 00:00:00 2001 From: caryclark Date: Fri, 18 Mar 2016 04:44:23 -0700 Subject: allow one zero length dash If the constructed stroke that represents a dash has a single dash of length zero, and the end cap is square or round, draw the cap. The old code initialized the initial dash length to zero, making it ambiguous whether the first length is zero or not. R=robertphillips@google.com BUG=583299 GOLD_TRYBOT_URL= https://gold.skia.org/search2?unt=true&query=source_type%3Dgm&master=false&issue=1805963002 Review URL: https://codereview.chromium.org/1805963002 --- tests/DashPathEffectTest.cpp | 11 +++-------- 1 file changed, 3 insertions(+), 8 deletions(-) (limited to 'tests/DashPathEffectTest.cpp') diff --git a/tests/DashPathEffectTest.cpp b/tests/DashPathEffectTest.cpp index 68fce9a142..fa2395ef75 100644 --- a/tests/DashPathEffectTest.cpp +++ b/tests/DashPathEffectTest.cpp @@ -12,20 +12,15 @@ #include "SkStrokeRec.h" // crbug.com/348821 was rooted in SkDashPathEffect refusing to flatten and unflatten itself when -// fInitialDashLength < 0 (a signal the effect is nonsense). Here we test that it flattens. +// the effect is nonsense. Here we test that it fails when passed nonsense parameters. DEF_TEST(DashPathEffectTest_crbug_348821, r) { SkScalar intervals[] = { 1.76934361e+36f, 2.80259693e-45f }; // Values from bug. const int count = 2; - SkScalar phase = SK_ScalarInfinity; // Used to force the bad fInitialDashLength = -1 path. + SkScalar phase = SK_ScalarInfinity; // Used to force a nonsense effect. SkAutoTUnref dash(SkDashPathEffect::Create(intervals, count, phase)); - // nullptr -> refuses to work with flattening framework. - REPORTER_ASSERT(r, dash->getFactory() != nullptr); - - SkWriteBuffer buffer; - buffer.writeFlattenable(dash); - REPORTER_ASSERT(r, buffer.bytesWritten() > 12); // We'd write 12 if broken, >=40 if not. + REPORTER_ASSERT(r, dash == nullptr); } // Test out the asPoint culling behavior. -- cgit v1.2.3