From: John Ellson Date: Mon, 20 Jul 2015 12:38:47 +0000 (-0400) Subject: avoid use of long long in IDTYPE comparisons X-Git-Tag: TRAVIS_CI_BUILD_EXPERIMENTAL~109^2~1 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=1bf2c216d2d56cb41100b71e3a46a217b1fcf6fe;p=graphviz avoid use of long long in IDTYPE comparisons --- diff --git a/lib/cgraph/edge.c b/lib/cgraph/edge.c index 4810f3f1d..1da3158dd 100644 --- a/lib/cgraph/edge.c +++ b/lib/cgraph/edge.c @@ -404,37 +404,38 @@ Agedge_t *agsubedge(Agraph_t * g, Agedge_t * e, int cflag) /* edge comparison. OBJTYPE(e) == 0 means ID is a wildcard. */ int agedgeidcmpf(Dict_t * d, void *arg_e0, void *arg_e1, Dtdisc_t * disc) { - long long v; Agedge_t *e0, *e1; NOTUSED(d); e0 = arg_e0; e1 = arg_e1; NOTUSED(disc); - v = AGID(e0->node) - AGID(e1->node); - if (v == 0) { /* same node */ - if ((AGID(e0) == 0) || (AGID(e1) == 0)) - v = 0; - else - v = AGID(e0) - AGID(e1); - } - return ((v==0)?0:(v<0?-1:1)); + + if (AGID(e0->node) < AGID(e1->node)) return -1; + if (AGID(e0->node) > AGID(e1->node)) return 1; + return 0; } /* edge comparison. for ordered traversal. */ int agedgeseqcmpf(Dict_t * d, void *arg_e0, void *arg_e1, Dtdisc_t * disc) { - long long v; Agedge_t *e0, *e1; NOTUSED(d); e0 = arg_e0; e1 = arg_e1; NOTUSED(disc); - assert(arg_e0 && arg_e1); - if (e0->node != e1->node) v = AGSEQ(e0->node) - AGSEQ(e1->node); - else v = (AGSEQ(e0) - AGSEQ(e1)); - return ((v==0)?0:(v<0?-1:1)); + assert(arg_e0 && arg_e1); + + if (e0->node != e1->node) { + if (AGSEQ(e0->node) < AGSEQ(e1->node)) return -1; + if (AGSEQ(e0->node) > AGSEQ(e1->node)) return 1; + } + else { + if (AGSEQ(e0) < AGSEQ(e1)) return -1; + if (AGSEQ(e0) > AGSEQ(e1)) return 1; + } + return 0; } /* indexing for ordered traversal */ diff --git a/lib/cgraph/node.c b/lib/cgraph/node.c index c5a1c96a6..c44ed6486 100644 --- a/lib/cgraph/node.c +++ b/lib/cgraph/node.c @@ -273,22 +273,26 @@ Agnode_t *agsubnode(Agraph_t * g, Agnode_t * n0, int cflag) int agsubnodeidcmpf(Dict_t * d, void *arg0, void *arg1, Dtdisc_t * disc) { - long long v; Agsubnode_t *sn0, *sn1; + sn0 = (Agsubnode_t *) arg0; sn1 = (Agsubnode_t *) arg1; - v = (AGID(sn0->node) - AGID(sn1->node)); - return ((v==0)?0:(v<0?-1:1)); + + if (AGID(sn0->node) < AGID(sn1->node)) return -1; + if (AGID(sn0->node) > AGID(sn1->node)) return 1; + return 0; } int agsubnodeseqcmpf(Dict_t * d, void *arg0, void *arg1, Dtdisc_t * disc) { Agsubnode_t *sn0, *sn1; - long v; + sn0 = (Agsubnode_t *) arg0; sn1 = (Agsubnode_t *) arg1; - v = (AGSEQ(sn0->node) - AGSEQ(sn1->node)); - return ((v==0)?0:(v<0?-1:1)); + + if (AGSEQ(sn0->node) < AGSEQ(sn1->node)) return -1; + if (AGSEQ(sn0->node) > AGSEQ(sn1->node)) return 1; + return 0; } /* free_subnode: