]> granicus.if.org Git - graphviz/commitdiff
sparse check_or_realloc_arrays: abbreviate no-op 'MAX' call
authorMatthew Fernandez <matthew.fernandez@gmail.com>
Sun, 28 Aug 2022 20:21:18 +0000 (13:21 -0700)
committerMatthew Fernandez <matthew.fernandez@gmail.com>
Wed, 31 Aug 2022 00:12:49 +0000 (17:12 -0700)
1b847b5abf50d2ab0701523b90a20306d0ee5528 seems to have incorrectly assumed
multiplication has a higher precedence than casts. In reality, it is the
opposite, meaning the first parameter to this `MAX` call was always 0. So the
entire expression would evaluate to 10. Empirically this seems to have been fine
since this code has been in use for over a decade with no specific problems
blamed on this area. So lets just abbreviate it into what it evaluates to.

Gitlab: #2269

lib/sparse/QuadTree.c

index 1e5fabb3931234deb8e5590bd32cecf5ef2664bd..bf73ede9393d12db7428c80df22c74e8e86deb3b 100644 (file)
@@ -67,7 +67,7 @@ static int node_data_get_id(void *d){
 static void check_or_realloc_arrays(int dim, int *nsuper, int *nsupermax, double **center, double **supernode_wgts, double **distances){
   
   if (*nsuper >= *nsupermax) {
-    *nsupermax = *nsuper + MAX(10, (int) 0.2*(*nsuper));
+    *nsupermax = *nsuper + 10;
     *center = REALLOC(*center, sizeof(double)*(*nsupermax)*dim);
     *supernode_wgts = REALLOC(*supernode_wgts, sizeof(double)*(*nsupermax));
     *distances = REALLOC(*distances, sizeof(double)*(*nsupermax));