]> granicus.if.org Git - graphviz/commitdiff
Fix misplaced longjmp
authorEmden Gansner <erg@research.att.com>
Thu, 12 Jan 2012 19:15:49 +0000 (14:15 -0500)
committerEmden Gansner <erg@research.att.com>
Thu, 12 Jan 2012 19:15:49 +0000 (14:15 -0500)
lib/pathplan/triang.c

index 27eadbe2e8fa8a6e39f4ad49fd53769275e249b8..71d22d4ecba223f3a42b0a761c286ceeb72b1021 100644 (file)
@@ -83,6 +83,10 @@ int Ptriangulate(Ppoly_t * polygon, void (*fn) (void *, Ppoint_t *),
     return 0;
 }
 
+/* triangulate:
+ * Triangulates the given polygon. 
+ * Throws an exception if no diagonal exists.
+ */
 static void
 triangulate(Ppoint_t ** pointp, int pointn,
            void (*fn) (void *, Ppoint_t *), void *vc)
@@ -103,10 +107,10 @@ triangulate(Ppoint_t ** pointp, int pointn,
                    if (i != ip1)
                        pointp[j++] = pointp[i];
                triangulate(pointp, pointn - 1, fn, vc);
-               longjmp(jbuf,1);
+               return;
            }
        }
-       abort();
+       longjmp(jbuf,1);
     } else {
        A[0] = *pointp[0];
        A[1] = *pointp[1];