diff --git a/xs/src/polypartition.cpp b/xs/src/polypartition.cpp index bdd23f6f3..700cd0974 100644 --- a/xs/src/polypartition.cpp +++ b/xs/src/polypartition.cpp @@ -74,11 +74,13 @@ TPPLPoly::TPPLPoly(const TPPLPoly &src) { } TPPLPoly& TPPLPoly::operator=(const TPPLPoly &src) { - Clear(); - hole = src.hole; - numpoints = src.numpoints; - points = new TPPLPoint[numpoints]; - memcpy(points, src.points, numpoints*sizeof(TPPLPoint)); + if(&src != this) { + Clear(); + hole = src.hole; + numpoints = src.numpoints; + points = new TPPLPoint[numpoints]; + memcpy(points, src.points, numpoints*sizeof(TPPLPoint)); + } return *this; }