]> granicus.if.org Git - graphviz/commitdiff
Fix case for curved edges when centroid is identical to the midpoint of an edge
authorEmden R. Gansner <erg@alum.mit.edu>
Tue, 12 Aug 2014 18:45:44 +0000 (14:45 -0400)
committerEmden R. Gansner <erg@alum.mit.edu>
Tue, 12 Aug 2014 18:45:44 +0000 (14:45 -0400)
lib/common/routespl.c

index 3a2d5b84ede8f93f08a1484cd1f945a562834195..c0e500a02284cd90af8d962e84c2becf334bb3d5 100644 (file)
@@ -918,6 +918,7 @@ static void bend(pointf spl[4], pointf centroid)
         double vX = centroid.x - midpt.x;
         double vY = centroid.y - midpt.y;
         double magV = sqrt(vX*vX + vY*vY);
+       if (magV == 0) return;  /* if midpoint == centroid, don't divide by zero */
         a.x = midpt.x - vX / magV * r;      /* + would be closest point */
         a.y = midpt.y - vY / magV * r;
     }