Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(3)

Side by Side Diff: src/pathops/SkPathWriter.cpp

Issue 2426173002: fix fuzzers (Closed)
Patch Set: fix dm Created 4 years, 2 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « src/pathops/SkPathWriter.h ('k') | tests/PathOpsAngleIdeas.cpp » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 /* 1 /*
2 * Copyright 2012 Google Inc. 2 * Copyright 2012 Google Inc.
3 * 3 *
4 * Use of this source code is governed by a BSD-style license that can be 4 * Use of this source code is governed by a BSD-style license that can be
5 * found in the LICENSE file. 5 * found in the LICENSE file.
6 */ 6 */
7 #include "SkOpSpan.h" 7 #include "SkOpSpan.h"
8 #include "SkPathOpsPoint.h" 8 #include "SkPathOpsPoint.h"
9 #include "SkPathWriter.h" 9 #include "SkPathWriter.h"
10 #include "SkTSort.h" 10 #include "SkTSort.h"
(...skipping 30 matching lines...) Expand all
41 41
42 void SkPathWriter::cubicTo(const SkPoint& pt1, const SkPoint& pt2, const SkOpPtT * pt3) { 42 void SkPathWriter::cubicTo(const SkPoint& pt1, const SkPoint& pt2, const SkOpPtT * pt3) {
43 this->update(pt3); 43 this->update(pt3);
44 #if DEBUG_PATH_CONSTRUCTION 44 #if DEBUG_PATH_CONSTRUCTION
45 SkDebugf("path.cubicTo(%1.9g,%1.9g, %1.9g,%1.9g, %1.9g,%1.9g);\n", 45 SkDebugf("path.cubicTo(%1.9g,%1.9g, %1.9g,%1.9g, %1.9g,%1.9g);\n",
46 pt1.fX, pt1.fY, pt2.fX, pt2.fY, pt3->fPt.fX, pt3->fPt.fY); 46 pt1.fX, pt1.fY, pt2.fX, pt2.fY, pt3->fPt.fX, pt3->fPt.fY);
47 #endif 47 #endif
48 fCurrent.cubicTo(pt1, pt2, pt3->fPt); 48 fCurrent.cubicTo(pt1, pt2, pt3->fPt);
49 } 49 }
50 50
51 void SkPathWriter::deferredLine(const SkOpPtT* pt) { 51 bool SkPathWriter::deferredLine(const SkOpPtT* pt) {
52 SkASSERT(fFirstPtT); 52 SkASSERT(fFirstPtT);
53 SkASSERT(fDefer[0]); 53 SkASSERT(fDefer[0]);
54 if (fDefer[0] == pt) { 54 if (fDefer[0] == pt) {
55 // FIXME: why we're adding a degenerate line? Caller should have preflig hted this. 55 // FIXME: why we're adding a degenerate line? Caller should have preflig hted this.
56 return; 56 return true;
57 } 57 }
58 if (pt->contains(fDefer[0])) { 58 if (pt->contains(fDefer[0])) {
59 // FIXME: why we're adding a degenerate line? 59 // FIXME: why we're adding a degenerate line?
60 return; 60 return true;
61 } 61 }
62 SkASSERT(!this->matchedLast(pt)); 62 if (this->matchedLast(pt)) {
63 return false;
64 }
63 if (fDefer[1] && this->changedSlopes(pt)) { 65 if (fDefer[1] && this->changedSlopes(pt)) {
64 this->lineTo(); 66 this->lineTo();
65 fDefer[0] = fDefer[1]; 67 fDefer[0] = fDefer[1];
66 } 68 }
67 fDefer[1] = pt; 69 fDefer[1] = pt;
70 return true;
68 } 71 }
69 72
70 void SkPathWriter::deferredMove(const SkOpPtT* pt) { 73 void SkPathWriter::deferredMove(const SkOpPtT* pt) {
71 if (!fDefer[1]) { 74 if (!fDefer[1]) {
72 fFirstPtT = fDefer[0] = pt; 75 fFirstPtT = fDefer[0] = pt;
73 return; 76 return;
74 } 77 }
75 SkASSERT(fDefer[0]); 78 SkASSERT(fDefer[0]);
76 if (!this->matchedLast(pt)) { 79 if (!this->matchedLast(pt)) {
77 this->finishContour(); 80 this->finishContour();
(...skipping 275 matching lines...) Expand 10 before | Expand all | Expand 10 after
353 } 356 }
354 } while (rIndex < linkCount); 357 } while (rIndex < linkCount);
355 #if DEBUG_ASSEMBLE 358 #if DEBUG_ASSEMBLE
356 for (rIndex = 0; rIndex < linkCount; ++rIndex) { 359 for (rIndex = 0; rIndex < linkCount; ++rIndex) {
357 SkASSERT(sLink[rIndex] == SK_MaxS32); 360 SkASSERT(sLink[rIndex] == SK_MaxS32);
358 SkASSERT(eLink[rIndex] == SK_MaxS32); 361 SkASSERT(eLink[rIndex] == SK_MaxS32);
359 } 362 }
360 #endif 363 #endif
361 return; 364 return;
362 } 365 }
OLDNEW
« no previous file with comments | « src/pathops/SkPathWriter.h ('k') | tests/PathOpsAngleIdeas.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698