]> granicus.if.org Git - graphviz/commitdiff
cgraph: rephrase ID comparison in 'agraphidcmpf'
authorMatthew Fernandez <matthew.fernandez@gmail.com>
Wed, 6 Jul 2022 00:24:05 +0000 (17:24 -0700)
committerMatthew Fernandez <matthew.fernandez@gmail.com>
Sat, 9 Jul 2022 20:27:34 +0000 (13:27 -0700)
Avoids a possible integer overflow and squashes a -Wsign-conversion warning.

lib/cgraph/graph.c

index 1e2223a4d486d719bd83bbbd5087f63e5748ace5..a2f1aacb23f53badf4dcebbbfa7f69338e09fab4 100644 (file)
@@ -239,11 +239,15 @@ static int agraphidcmpf(Dict_t * d, void *arg0, void *arg1, Dtdisc_t * disc)
 {
     (void)d; /* unused */
     (void)disc; /* unused */
-    ptrdiff_t  v;
     Agraph_t *sg0 = arg0;
     Agraph_t *sg1 = arg1;
-    v = (AGID(sg0) - AGID(sg1));
-    return ((v==0)?0:(v<0?-1:1));
+    if (AGID(sg0) < AGID(sg1)) {
+       return -1;
+    }
+    if (AGID(sg0) > AGID(sg1)) {
+       return 1;
+    }
+    return 0;
 }
 
 Dtdisc_t Ag_subgraph_id_disc = {