]> granicus.if.org Git - graphviz/commitdiff
remove now unused jmp buffer
authorMatthew Fernandez <matthew.fernandez@gmail.com>
Sat, 10 Apr 2021 02:48:41 +0000 (19:48 -0700)
committerMatthew Fernandez <matthew.fernandez@gmail.com>
Sun, 18 Apr 2021 00:30:16 +0000 (17:30 -0700)
Having unraveled the use of longjmp here, the jmp_buf and its setup are no
longer required.

On GCC 8.3.0 this removes a -Wclobbered warning. Though interestingly the
warning text itself is a false positive, referencing nverts that is not used in
the setjmp(…)!=0 path. The actual dangerously used variables in this scenario
were polygon_list and vertex_list. My take away here is that *any* -Wclobbered
warning is typically an indicator of incorrect code. I have never seen a
-Wclobbered warning (from any compiler) for code that was not buggy.

Related to #1801.

lib/neatogen/legal.c

index 530496d4e3a401ddd4eafed734748b37793ab139..acb5efeeccbf97eff857750e29d349f5ecdb6e66 100644 (file)
@@ -11,9 +11,6 @@
 #include <math.h>
 #include <neatogen/neato.h>
 #include <pathplan/pathutil.h>
-#include <setjmp.h>
-
-static jmp_buf jbuf;
 
 #define MAXINTS  10000         /* modify this line to reflect the max no. of 
                                   intersections you want reported -- 50000 seems to break the program */
@@ -448,11 +445,6 @@ int Plegal_arrangement(Ppoly_t ** polys, int n_polys)
     input.nvertices = nverts;
     input.npolygons = n_polys;
 
-    if (setjmp(jbuf)) {
-       free(polygon_list);
-       free(vertex_list);
-       return 0;
-    }
     found = find_ints(vertex_list, polygon_list, &input, ilist);
     if (found < 0) {
        free(polygon_list);