From: Matthew Fernandez Date: Sat, 19 Nov 2022 23:42:27 +0000 (-0800) Subject: neatogen: represent 'nsites' as a 'size_t' X-Git-Tag: 7.0.3~1^2~12 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=3b42d97bc59e4eb964c14ee334b06d76a0af5e4a;p=graphviz neatogen: represent 'nsites' as a 'size_t' This squashes 3 -Wsign-conversion warnings. Note that this required also converting `nvertices` and `Site.sitenbr` to `size_t` too. --- diff --git a/lib/neatogen/adjust.c b/lib/neatogen/adjust.c index 79a50fe52..20a87d401 100644 --- a/lib/neatogen/adjust.c +++ b/lib/neatogen/adjust.c @@ -13,6 +13,7 @@ * order to reduce/remove node overlaps. */ +#include #include #include #include @@ -35,6 +36,7 @@ #include #endif #include +#include #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++; diff --git a/lib/neatogen/geometry.c b/lib/neatogen/geometry.c index 3c851b927..e8b330c59 100644 --- a/lib/neatogen/geometry.c +++ b/lib/neatogen/geometry.c @@ -10,7 +10,7 @@ #include #include - +#include 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() diff --git a/lib/neatogen/geometry.h b/lib/neatogen/geometry.h index 010e23dd6..7e6f6f3cb 100644 --- a/lib/neatogen/geometry.h +++ b/lib/neatogen/geometry.h @@ -10,6 +10,8 @@ #pragma once +#include + #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); diff --git a/lib/neatogen/heap.c b/lib/neatogen/heap.c index 0ad0b998e..14d5d8b6f 100644 --- a/lib/neatogen/heap.c +++ b/lib/neatogen/heap.c @@ -8,7 +8,7 @@ * Contributors: Details at https://graphviz.org *************************************************************************/ - +#include #include #include #include @@ -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) diff --git a/lib/neatogen/site.c b/lib/neatogen/site.c index 501fad2d6..ed43bbf01 100644 --- a/lib/neatogen/site.c +++ b/lib/neatogen/site.c @@ -17,7 +17,7 @@ int siteidx; Site *bottomsite; static Freelist sfl; -static int nvertices; +static size_t nvertices; void siteinit() { diff --git a/lib/neatogen/site.h b/lib/neatogen/site.h index 7cad63e21..2a9b0f196 100644 --- a/lib/neatogen/site.h +++ b/lib/neatogen/site.h @@ -10,6 +10,8 @@ #pragma once +#include + #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;