diff options
author | reed <reed@google.com> | 2015-03-24 13:55:33 -0700 |
---|---|---|
committer | Commit bot <commit-bot@chromium.org> | 2015-03-24 13:55:33 -0700 |
commit | 0dc4dd6dda9a7912f696b46d9c02155ec1d1ba5f (patch) | |
tree | 994c85a8e418986415175ddccc71adf924df3846 /tests/PathOpsTSectDebug.h | |
parent | 82dec0e16ae10026194ce45b67af931700510450 (diff) |
Revert of pathops version two (patchset #16 id:150001 of https://codereview.chromium.org/1002693002/)
Reason for revert:
ASAN investigation
Original issue's description:
> pathops version two
>
> R=reed@google.com
>
> marked 'no commit' to attempt to get trybots to run
>
> TBR=reed@google.com
>
> Committed: https://skia.googlesource.com/skia/+/ccec0f958ffc71a9986d236bc2eb335cb2111119
TBR=caryclark@google.com
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
Review URL: https://codereview.chromium.org/1029993002
Diffstat (limited to 'tests/PathOpsTSectDebug.h')
-rw-r--r-- | tests/PathOpsTSectDebug.h | 161 |
1 files changed, 40 insertions, 121 deletions
diff --git a/tests/PathOpsTSectDebug.h b/tests/PathOpsTSectDebug.h index b4715e63e0..5f8915f681 100644 --- a/tests/PathOpsTSectDebug.h +++ b/tests/PathOpsTSectDebug.h @@ -8,158 +8,77 @@ #include "SkPathOpsTSect.h" template<typename TCurve> -const SkTSpan<TCurve>* SkTSect<TCurve>::debugSpan(int id) const { - const SkTSpan<TCurve>* test = fHead; - do { - if (test->debugID() == id) { - return test; - } - } while ((test = test->next())); -#ifndef SK_RELEASE - test = fOppSect->fHead; - do { - if (test->debugID() == id) { - return test; - } - } while ((test = test->next())); -#endif - return NULL; -} - -template<typename TCurve> -const SkTSpan<TCurve>* SkTSect<TCurve>::debugT(double t) const { - const SkTSpan<TCurve>* test = fHead; - const SkTSpan<TCurve>* closest = NULL; - double bestDist = DBL_MAX; - do { - if (between(test->fStartT, t, test->fEndT)) { - return test; - } - double testDist = SkTMin(fabs(test->fStartT - t), fabs(test->fEndT - t)); - if (bestDist > testDist) { - bestDist = testDist; - closest = test; - } - } while ((test = test->next())); - SkASSERT(closest); - return closest; -} - -template<typename TCurve> void SkTSect<TCurve>::dump() const { - dumpCommon(fHead); -} - -extern int gDumpTSectNum; - -template<typename TCurve> -void SkTSect<TCurve>::dumpBoth(SkTSect* opp) const { -#if DEBUG_T_SECT_DUMP <= 2 -#if DEBUG_T_SECT_DUMP == 2 - SkDebugf("%d ", ++gDumpTSectNum); -#endif - this->dump(); - SkDebugf(" "); - opp->dump(); - SkDebugf("\n"); -#elif DEBUG_T_SECT_DUMP == 3 - SkDebugf("<div id=\"sect%d\">\n", ++gDumpTSectNum); - if (this->fHead) { - this->dumpCurves(); - } - if (opp->fHead) { - PATH_OPS_DEBUG_CODE(opp->dumpCurves()); - } - SkDebugf("</div>\n\n"); -#endif -} - -template<typename TCurve> -void SkTSect<TCurve>::dumpBounds(int id) const { - const SkTSpan<TCurve>* bounded = debugSpan(id); - if (!bounded) { - SkDebugf("no span matches %d\n", id); - return; - } - const SkTSpan<TCurve>* test = bounded->debugOpp()->fHead; - do { - if (test->findOppSpan(bounded)) { - test->dump(); - } - } while ((test = test->next())); -} - -template<typename TCurve> -void SkTSect<TCurve>::dumpCoin() const { - dumpCommon(fCoincident); -} - -template<typename TCurve> -void SkTSect<TCurve>::dumpCoinCurves() const { - dumpCommonCurves(fCoincident); -} - -template<typename TCurve> -void SkTSect<TCurve>::dumpCommon(const SkTSpan<TCurve>* test) const { SkDebugf("id=%d", debugID()); + const SkTSpan<TCurve>* test = fHead; if (!test) { SkDebugf(" (empty)"); return; } do { SkDebugf(" "); - test->dump(); + test->dump(this); } while ((test = test->next())); } template<typename TCurve> -void SkTSect<TCurve>::dumpCommonCurves(const SkTSpan<TCurve>* test) const { - do { - test->fPart.dumpID(test->debugID()); - } while ((test = test->next())); +void SkTSect<TCurve>::dumpBoth(const SkTSect& opp) const { + dump(); + SkDebugf(" "); + opp.dump(); + SkDebugf("\n"); +} + +template<typename TCurve> +void SkTSect<TCurve>::dumpBoth(const SkTSect* opp) const { + dumpBoth(*opp); } template<typename TCurve> void SkTSect<TCurve>::dumpCurves() const { - dumpCommonCurves(fHead); + const SkTSpan<TCurve>* test = fHead; + do { + test->fPart.dump(); + } while ((test = test->next())); } +#if !DEBUG_T_SECT template<typename TCurve> -const SkTSpan<TCurve>* SkTSpan<TCurve>::debugSpan(int id) const { - return PATH_OPS_DEBUG_RELEASE(fDebugSect->debugSpan(id), NULL); +int SkTSpan<TCurve>::debugID(const SkTSect<TCurve>* sect) const { + if (!sect) { + return -1; + } + int id = 1; + const SkTSpan* test = sect->fHead; + while (test && test != this) { + ++id; + test = test->fNext; + } + return id; } +#endif template<typename TCurve> -const SkTSpan<TCurve>* SkTSpan<TCurve>::debugT(double t) const { - return PATH_OPS_DEBUG_RELEASE(fDebugSect->debugT(t), NULL); +void SkTSpan<TCurve>::dumpID(const SkTSect<TCurve>* sect) const { + if (fCoinStart.isCoincident()) { + SkDebugf("%c", '*'); + } + SkDebugf("%d", debugID(sect)); + if (fCoinEnd.isCoincident()) { + SkDebugf("%c", '*'); + } } template<typename TCurve> -void SkTSpan<TCurve>::dump() const { - dumpID(); +void SkTSpan<TCurve>::dump(const SkTSect<TCurve>* sect) const { + dumpID(sect); SkDebugf("=(%g,%g) [", fStartT, fEndT); for (int index = 0; index < fBounded.count(); ++index) { SkTSpan* span = fBounded[index]; - span->dumpID(); + span->dumpID(sect); if (index < fBounded.count() - 1) { SkDebugf(","); } } SkDebugf("]"); } - -template<typename TCurve> -void SkTSpan<TCurve>::dumpBounds(int id) const { - PATH_OPS_DEBUG_CODE(fDebugSect->dumpBounds(id)); -} - -template<typename TCurve> -void SkTSpan<TCurve>::dumpID() const { - if (fCoinStart.isCoincident()) { - SkDebugf("%c", '*'); - } - SkDebugf("%d", debugID()); - if (fCoinEnd.isCoincident()) { - SkDebugf("%c", '*'); - } -} |