diff options
author | bungeman <bungeman@google.com> | 2016-03-18 05:10:23 -0700 |
---|---|---|
committer | Commit bot <commit-bot@chromium.org> | 2016-03-18 05:10:23 -0700 |
commit | 6f0749cfc7f93880bd6b8acfdc61900cda4a81fe (patch) | |
tree | 0fb054893ced56e90a8baf02400744b45a5b2321 /src/utils/SkDashPathPriv.h | |
parent | 5e1a24808415df2748822e8082e21a361362cdfe (diff) |
Revert of allow one zero length dash (patchset #8 id:140001 of https://codereview.chromium.org/1805963002/ )
Reason for revert:
Causes the dash bench to crash.
Example crash:
https://build.chromium.org/p/client.skia/builders/Perf-Ubuntu-GCC-GCE-CPU-AVX2-x86_64-Release/builds/5581/steps/nanobench/logs/stdio
Original issue's description:
> 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
>
> Committed: https://skia.googlesource.com/skia/+/5e1a24808415df2748822e8082e21a361362cdfe
TBR=robertphillips@google.com,reed@google.com,caryclark@google.com
# Skipping CQ checks because original CL landed less than 1 days ago.
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=583299
Review URL: https://codereview.chromium.org/1808303004
Diffstat (limited to 'src/utils/SkDashPathPriv.h')
-rw-r--r-- | src/utils/SkDashPathPriv.h | 16 |
1 files changed, 4 insertions, 12 deletions
diff --git a/src/utils/SkDashPathPriv.h b/src/utils/SkDashPathPriv.h index 54bf9a4870..7453dcec82 100644 --- a/src/utils/SkDashPathPriv.h +++ b/src/utils/SkDashPathPriv.h @@ -16,25 +16,17 @@ namespace SkDashPath { * inputed phase and intervals. If adjustedPhase is passed in, then the phase will be * adjusted to be between 0 and intervalLength. The result will be stored in adjustedPhase. * If adjustedPhase is nullptr then it is assumed phase is already between 0 and intervalLength - * - * Caller should have already used ValidDashPath to exclude invalid data. */ void CalcDashParameters(SkScalar phase, const SkScalar intervals[], int32_t count, SkScalar* initialDashLength, int32_t* initialDashIndex, SkScalar* intervalLength, SkScalar* adjustedPhase = nullptr); bool FilterDashPath(SkPath* dst, const SkPath& src, SkStrokeRec*, const SkRect*, + const SkScalar aIntervals[], int32_t count, SkScalar initialDashLength, + int32_t initialDashIndex, SkScalar intervalLength); + + bool FilterDashPath(SkPath* dst, const SkPath& src, SkStrokeRec*, const SkRect*, const SkPathEffect::DashInfo& info); - - /* - * Caller should have already used ValidDashPath to exclude invalid data. - */ - bool InternalFilter(SkPath* dst, const SkPath& src, SkStrokeRec* rec, - const SkRect* cullRect, const SkScalar aIntervals[], - int32_t count, SkScalar initialDashLength, int32_t initialDashIndex, - SkScalar intervalLength); - - bool ValidDashPath(SkScalar phase, const SkScalar intervals[], int32_t count); } #endif |