Revert of fix destructor order to fix build (patchset #1 id:1 of https://codereview.chromium.org/1033703002/)
Reason for revert: working on asan fix Original issue's description: > fix destructor order to fix build > > TBR=reed > > Committed: https://skia.googlesource.com/skia/+/c207f9b2e8d6fb5386197fa8a8d258d2c4603418 TBR=reed@android.com NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true Review URL: https://codereview.chromium.org/1033803002
This commit is contained in:
parent
7aa846c683
commit
74c464a6af
@ -20,12 +20,6 @@ public:
|
|||||||
reset();
|
reset();
|
||||||
}
|
}
|
||||||
|
|
||||||
~SkOpContour() {
|
|
||||||
if (fNext) {
|
|
||||||
fNext->~SkOpContour();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
bool operator<(const SkOpContour& rh) const {
|
bool operator<(const SkOpContour& rh) const {
|
||||||
return fBounds.fTop == rh.fBounds.fTop
|
return fBounds.fTop == rh.fBounds.fTop
|
||||||
? fBounds.fLeft < rh.fBounds.fLeft
|
? fBounds.fLeft < rh.fBounds.fLeft
|
||||||
@ -67,7 +61,7 @@ public:
|
|||||||
|
|
||||||
SkOpContour* appendContour(SkChunkAlloc* allocator) {
|
SkOpContour* appendContour(SkChunkAlloc* allocator) {
|
||||||
SkOpContour* contour = SkOpTAllocator<SkOpContour>::New(allocator);
|
SkOpContour* contour = SkOpTAllocator<SkOpContour>::New(allocator);
|
||||||
contour->setNext(NULL);
|
|
||||||
SkOpContour* prev = this;
|
SkOpContour* prev = this;
|
||||||
SkOpContour* next;
|
SkOpContour* next;
|
||||||
while ((next = prev->next())) {
|
while ((next = prev->next())) {
|
||||||
@ -279,7 +273,7 @@ public:
|
|||||||
}
|
}
|
||||||
|
|
||||||
void setNext(SkOpContour* contour) {
|
void setNext(SkOpContour* contour) {
|
||||||
// SkASSERT(!fNext == !!contour);
|
SkASSERT(!fNext == !!contour);
|
||||||
fNext = contour;
|
fNext = contour;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -440,12 +440,12 @@ public:
|
|||||||
reassemble contour pieces into new path
|
reassemble contour pieces into new path
|
||||||
*/
|
*/
|
||||||
void Assemble(const SkPathWriter& path, SkPathWriter* simple) {
|
void Assemble(const SkPathWriter& path, SkPathWriter* simple) {
|
||||||
SkChunkAlloc allocator(4096); // FIXME: constant-ize, tune
|
|
||||||
SkOpContour contour;
|
SkOpContour contour;
|
||||||
SkOpGlobalState globalState(NULL PATH_OPS_DEBUG_PARAMS(&contour));
|
SkOpGlobalState globalState(NULL PATH_OPS_DEBUG_PARAMS(&contour));
|
||||||
#if DEBUG_PATH_CONSTRUCTION
|
#if DEBUG_PATH_CONSTRUCTION
|
||||||
SkDebugf("%s\n", __FUNCTION__);
|
SkDebugf("%s\n", __FUNCTION__);
|
||||||
#endif
|
#endif
|
||||||
|
SkChunkAlloc allocator(4096); // FIXME: constant-ize, tune
|
||||||
SkOpEdgeBuilder builder(path, &contour, &allocator, &globalState);
|
SkOpEdgeBuilder builder(path, &contour, &allocator, &globalState);
|
||||||
builder.finish(&allocator);
|
builder.finish(&allocator);
|
||||||
SkTDArray<const SkOpContour* > runs; // indices of partial contours
|
SkTDArray<const SkOpContour* > runs; // indices of partial contours
|
||||||
|
@ -261,7 +261,6 @@ static void dump_op(const SkPath& one, const SkPath& two, SkPathOp op) {
|
|||||||
#endif
|
#endif
|
||||||
|
|
||||||
bool Op(const SkPath& one, const SkPath& two, SkPathOp op, SkPath* result) {
|
bool Op(const SkPath& one, const SkPath& two, SkPathOp op, SkPath* result) {
|
||||||
SkChunkAlloc allocator(4096); // FIXME: add a constant expression here, tune
|
|
||||||
SkOpContour contour;
|
SkOpContour contour;
|
||||||
SkOpCoincidence coincidence;
|
SkOpCoincidence coincidence;
|
||||||
SkOpGlobalState globalState(&coincidence PATH_OPS_DEBUG_PARAMS(&contour));
|
SkOpGlobalState globalState(&coincidence PATH_OPS_DEBUG_PARAMS(&contour));
|
||||||
@ -289,6 +288,7 @@ bool Op(const SkPath& one, const SkPath& two, SkPathOp op, SkPath* result) {
|
|||||||
SkPathOpsDebug::gSortCount = SkPathOpsDebug::gSortCountDefault;
|
SkPathOpsDebug::gSortCount = SkPathOpsDebug::gSortCountDefault;
|
||||||
#endif
|
#endif
|
||||||
// turn path into list of segments
|
// turn path into list of segments
|
||||||
|
SkChunkAlloc allocator(4096); // FIXME: add a constant expression here, tune
|
||||||
SkOpEdgeBuilder builder(*minuend, &contour, &allocator, &globalState);
|
SkOpEdgeBuilder builder(*minuend, &contour, &allocator, &globalState);
|
||||||
if (builder.unparseable()) {
|
if (builder.unparseable()) {
|
||||||
return false;
|
return false;
|
||||||
|
@ -177,7 +177,6 @@ static bool bridgeXor(SkTDArray<SkOpContour* >& contourList, SkPathWriter* simpl
|
|||||||
|
|
||||||
// FIXME : add this as a member of SkPath
|
// FIXME : add this as a member of SkPath
|
||||||
bool Simplify(const SkPath& path, SkPath* result) {
|
bool Simplify(const SkPath& path, SkPath* result) {
|
||||||
SkChunkAlloc allocator(4096); // FIXME: constant-ize, tune
|
|
||||||
// returns 1 for evenodd, -1 for winding, regardless of inverse-ness
|
// returns 1 for evenodd, -1 for winding, regardless of inverse-ness
|
||||||
SkPath::FillType fillType = path.isInverseFillType() ? SkPath::kInverseEvenOdd_FillType
|
SkPath::FillType fillType = path.isInverseFillType() ? SkPath::kInverseEvenOdd_FillType
|
||||||
: SkPath::kEvenOdd_FillType;
|
: SkPath::kEvenOdd_FillType;
|
||||||
@ -195,6 +194,7 @@ bool Simplify(const SkPath& path, SkPath* result) {
|
|||||||
#if DEBUG_SORT || DEBUG_SWAP_TOP
|
#if DEBUG_SORT || DEBUG_SWAP_TOP
|
||||||
SkPathOpsDebug::gSortCount = SkPathOpsDebug::gSortCountDefault;
|
SkPathOpsDebug::gSortCount = SkPathOpsDebug::gSortCountDefault;
|
||||||
#endif
|
#endif
|
||||||
|
SkChunkAlloc allocator(4096); // FIXME: constant-ize, tune
|
||||||
SkOpEdgeBuilder builder(path, &contour, &allocator, &globalState);
|
SkOpEdgeBuilder builder(path, &contour, &allocator, &globalState);
|
||||||
if (!builder.finish(&allocator)) {
|
if (!builder.finish(&allocator)) {
|
||||||
return false;
|
return false;
|
||||||
|
@ -8,10 +8,10 @@
|
|||||||
#include "SkPathOpsCommon.h"
|
#include "SkPathOpsCommon.h"
|
||||||
|
|
||||||
bool TightBounds(const SkPath& path, SkRect* result) {
|
bool TightBounds(const SkPath& path, SkRect* result) {
|
||||||
SkChunkAlloc allocator(4096); // FIXME: constant-ize, tune
|
|
||||||
SkOpContour contour;
|
SkOpContour contour;
|
||||||
SkOpGlobalState globalState( NULL PATH_OPS_DEBUG_PARAMS(&contour));
|
SkOpGlobalState globalState( NULL PATH_OPS_DEBUG_PARAMS(&contour));
|
||||||
// turn path into list of segments
|
// turn path into list of segments
|
||||||
|
SkChunkAlloc allocator(4096); // FIXME: constant-ize, tune
|
||||||
SkOpEdgeBuilder builder(path, &contour, &allocator, &globalState);
|
SkOpEdgeBuilder builder(path, &contour, &allocator, &globalState);
|
||||||
if (!builder.finish(&allocator)) {
|
if (!builder.finish(&allocator)) {
|
||||||
return false;
|
return false;
|
||||||
|
@ -233,10 +233,10 @@ static CircleData circleDataSet[] = {
|
|||||||
static const int circleDataSetSize = (int) SK_ARRAY_COUNT(circleDataSet);
|
static const int circleDataSetSize = (int) SK_ARRAY_COUNT(circleDataSet);
|
||||||
|
|
||||||
DEF_TEST(PathOpsAngleCircle, reporter) {
|
DEF_TEST(PathOpsAngleCircle, reporter) {
|
||||||
SkChunkAlloc allocator(4096);
|
|
||||||
SkOpContour contour;
|
SkOpContour contour;
|
||||||
SkOpGlobalState state(NULL PATH_OPS_DEBUG_PARAMS(&contour));
|
SkOpGlobalState state(NULL PATH_OPS_DEBUG_PARAMS(&contour));
|
||||||
contour.init(&state, false, false);
|
contour.init(&state, false, false);
|
||||||
|
SkChunkAlloc allocator(4096);
|
||||||
for (int index = 0; index < circleDataSetSize; ++index) {
|
for (int index = 0; index < circleDataSetSize; ++index) {
|
||||||
CircleData& data = circleDataSet[index];
|
CircleData& data = circleDataSet[index];
|
||||||
for (int idx2 = 0; idx2 < data.fPtCount; ++idx2) {
|
for (int idx2 = 0; idx2 < data.fPtCount; ++idx2) {
|
||||||
|
Loading…
Reference in New Issue
Block a user