]> granicus.if.org Git - graphviz/commitdiff
neatogen: represent 'nsites' as a 'size_t'
authorMatthew Fernandez <matthew.fernandez@gmail.com>
Sat, 19 Nov 2022 23:42:27 +0000 (15:42 -0800)
committerMatthew Fernandez <matthew.fernandez@gmail.com>
Fri, 25 Nov 2022 18:30:51 +0000 (10:30 -0800)
This squashes 3 -Wsign-conversion warnings. Note that this required also
converting `nvertices` and `Site.sitenbr` to `size_t` too.

lib/neatogen/adjust.c
lib/neatogen/geometry.c
lib/neatogen/geometry.h
lib/neatogen/heap.c
lib/neatogen/site.c
lib/neatogen/site.h

index 79a50fe520400ed2a31cd7d83c0e4991792cbd02..20a87d40104f95390cfa4f21b937f5350ef7c9e9 100644 (file)
@@ -13,6 +13,7 @@
  * order to reduce/remove node overlaps.
  */
 
+#include <assert.h>
 #include <cgraph/alloc.h>
 #include <neatogen/neato.h>
 #include <cgraph/agxbuf.h>
@@ -35,6 +36,7 @@
 #include <neatogen/quad_prog_vpsc.h>
 #endif
 #include <cgraph/strcasecmp.h>
+#include <stddef.h>
 
 #define SEPFACT         0.8f  /* default esep/sep */
 
@@ -72,10 +74,9 @@ static void setBoundBox(Point * ll, Point * ur)
   */
 static void freeNodes(void)
 {
-    int i;
     Info_t *ip = nodeInfo;
 
-    for (i = 0; i < nsites; i++) {
+    for (size_t i = 0; i < nsites; i++) {
        breakPoly(&ip->poly);
        ip++;
     }
@@ -104,7 +105,7 @@ static void chkBoundBox(Agraph_t * graph)
     double y_min = pp->origin.y + y;
     double x_max = pp->corner.x + x;
     double y_max = pp->corner.y + y;
-    for (int i = 1; i < nsites; i++) {
+    for (size_t i = 1; i < nsites; i++) {
        ip++;
        pp = &ip->poly;
        x = ip->site.coord.x;
@@ -135,12 +136,12 @@ static void chkBoundBox(Agraph_t * graph)
 static int makeInfo(Agraph_t * graph)
 {
     Agnode_t *node;
-    int i;
     Info_t *ip;
     expand_t pmargin;
     int (*polyf)(Poly *, Agnode_t *, float, float);
 
-    nsites = agnnodes(graph);
+    assert(agnnodes(graph) >= 0);
+    nsites = (size_t)agnnodes(graph);
     geominit();
 
     nodeInfo = gv_calloc(nsites, sizeof(Info_t));
@@ -158,7 +159,7 @@ static int makeInfo(Agraph_t * graph)
     }
        
     else polyf = makePoly;
-    for (i = 0; i < nsites; i++) {
+    for (size_t i = 0; i < nsites; i++) {
        ip->site.coord.x = ND_pos(node)[0];
        ip->site.coord.y = ND_pos(node)[1];
 
@@ -201,7 +202,6 @@ static int scomp(const void *S1, const void *S2)
   */
 static void sortSites(void)
 {
-    int i;
     Site **sp;
     Info_t *ip;
 
@@ -213,7 +213,7 @@ static void sortSites(void)
     sp = sites;
     ip = nodeInfo;
     infoinit();
-    for (i = 0; i < nsites; i++) {
+    for (size_t i = 0; i < nsites; i++) {
        *sp++ = &ip->site;
        ip->verts = NULL;
        ip->site.refcnt = 1;
@@ -229,15 +229,13 @@ static void sortSites(void)
 
 static void geomUpdate(int doSort)
 {
-    int i;
-
     if (doSort)
        sortSites();
 
     /* compute ranges */
     xmin = sites[0]->coord.x;
     xmax = sites[0]->coord.x;
-    for (i = 1; i < nsites; i++) {
+    for (size_t i = 1; i < nsites; i++) {
        xmin = fmin(xmin, sites[i]->coord.x);
        xmax = fmax(xmax, sites[i]->coord.x);
     }
@@ -319,16 +317,15 @@ static void rmEquality(void)
 static int countOverlap(int iter)
 {
     int count = 0;
-    int i, j;
     Info_t *ip = nodeInfo;
     Info_t *jp;
 
-    for (i = 0; i < nsites; i++)
+    for (size_t i = 0; i < nsites; i++)
        nodeInfo[i].overlaps = 0;
 
-    for (i = 0; i < nsites - 1; i++) {
+    for (size_t i = 0; i < nsites - 1; i++) {
        jp = ip + 1;
-       for (j = i + 1; j < nsites; j++) {
+       for (size_t j = i + 1; j < nsites; j++) {
            if (polyOverlap(ip->site.coord, &ip->poly, jp->site.coord, &jp->poly)) {
                count++;
                ip->overlaps = 1;
@@ -432,10 +429,9 @@ static void addCorners(void)
     double sed = dist_2(&ip->site.coord, &se);
     double ned = dist_2(&ip->site.coord, &ne);
     double d;
-    int i;
 
     ip++;
-    for (i = 1; i < nsites; i++) {
+    for (size_t i = 1; i < nsites; i++) {
        d = dist_2(&ip->site.coord, &sw);
        if (d < swd) {
            swd = d;
@@ -475,11 +471,10 @@ static void addCorners(void)
   */
 static void newPos(void)
 {
-    int i;
     Info_t *ip = nodeInfo;
 
     addCorners();
-    for (i = 0; i < nsites; i++) {
+    for (size_t i = 0; i < nsites; i++) {
        if (doAll || ip->overlaps)
            newpos(ip);
        ip++;
@@ -559,11 +554,10 @@ static int vAdjust(void)
 
 static double rePos(void)
 {
-    int i;
     Info_t *ip = nodeInfo;
     double f = 1.0 + incr;
 
-    for (i = 0; i < nsites; i++) {
+    for (size_t i = 0; i < nsites; i++) {
        ip->site.coord.x *= f;
        ip->site.coord.y *= f;
        ip++;
@@ -607,11 +601,10 @@ static int sAdjust(void)
   */
 static void updateGraph(void)
 {
-    int i;
     Info_t *ip;
 
     ip = nodeInfo;
-    for (i = 0; i < nsites; i++) {
+    for (size_t i = 0; i < nsites; i++) {
        ND_pos(ip->node)[0] = ip->site.coord.x;
        ND_pos(ip->node)[1] = ip->site.coord.y;
        ip++;
index 3c851b927d9b2a8e63fe22ff2e7795952f9b61e6..e8b330c59c26e76db0f9dabdd254efd6d53374d8 100644 (file)
@@ -10,7 +10,7 @@
 
 #include <neatogen/geometry.h>
 #include <math.h>
-
+#include <stddef.h>
 
 Point origin = { 0, 0 };
 
@@ -18,7 +18,7 @@ double xmin, xmax, ymin, ymax;        /* min and max x and y values of sites */
 double deltax,                 /* xmax - xmin */
  deltay;                       /* ymax - ymin */
 
-int nsites;
+size_t nsites;
 int sqrt_nsites;
 
 void geominit()
index 010e23dd6cea0e9ebff984a1d20e580fe0b919bb..7e6f6f3cb1d01c834ac0caa6409150c11d70f863 100644 (file)
@@ -10,6 +10,8 @@
 
 #pragma once
 
+#include <stddef.h>
+
 #ifdef __cplusplus
 extern "C" {
 #endif
@@ -27,7 +29,7 @@ extern "C" {
     extern double xmin, xmax, ymin, ymax;      /* extreme x,y values of sites */
     extern double deltax, deltay;      /* xmax - xmin, ymax - ymin */
 
-    extern int nsites;         /* Number of sites */
+    extern size_t nsites; // Number of sites
     extern int sqrt_nsites;
 
     extern void geominit(void);
index 0ad0b998e2bc78c9d17169583ee324847d26f77d..14d5d8b6f34644c35627fbe92444390cd4ab30ec 100644 (file)
@@ -8,7 +8,7 @@
  * Contributors: Details at https://graphviz.org
  *************************************************************************/
 
-
+#include <cgraph/prisize_t.h>
 #include <common/render.h>
 #include <stdbool.h>
 #include <stdio.h>
@@ -124,10 +124,15 @@ void PQinitialize(void)
 
 static void PQdumphe(Halfedge * p)
 {
-    printf("  [%p] %p %p %d %d %d %d %f\n",
+    printf("  [%p] %p %p %d %d %d ",
           p, p->ELleft, p->ELright, p->ELedge->edgenbr,
-          p->ELrefcnt, p->ELpm, p->vertex ? p->vertex->sitenbr : -1,
-          p->ystar);
+          p->ELrefcnt, p->ELpm);
+    if (p->vertex != 0) {
+      printf("%" PRISIZE_T, p->vertex->sitenbr);
+    } else {
+      printf("-1");
+    }
+    printf(" %f\n", p->ystar);
 }
 
 void PQdump(void)
index 501fad2d655d95f64855b0f2134f1e7a1331edbc..ed43bbf018b99e1b0306b0b3c38d0d2df71cd816 100644 (file)
@@ -17,7 +17,7 @@ int siteidx;
 Site *bottomsite;
 
 static Freelist sfl;
-static int nvertices;
+static size_t nvertices;
 
 void siteinit()
 {
index 7cad63e21d9f824368831f19a9148a672eb06092..2a9b0f19641df3c6b1d0e5c71c89279282dcbe25 100644 (file)
@@ -10,6 +10,8 @@
 
 #pragma once
 
+#include <stddef.h>
+
 #ifdef __cplusplus
 extern "C" {
 #endif
@@ -19,7 +21,7 @@ extern "C" {
     /* Sites are also used as vertices on line segments */
     typedef struct Site {
        Point coord;
-       int sitenbr;
+       size_t sitenbr;
        int refcnt;
     } Site;