]> granicus.if.org Git - graphviz/commitdiff
dijkstra_bounded: remove an allocator optimization
authorMatthew Fernandez <matthew.fernandez@gmail.com>
Sun, 19 Dec 2021 19:46:01 +0000 (11:46 -0800)
committerMatthew Fernandez <matthew.fernandez@gmail.com>
Sun, 19 Dec 2021 23:14:36 +0000 (15:14 -0800)
Similar to the prior commit, the previous code was actually a _deoptimization_.

lib/neatogen/dijkstra.c

index 2c5011b071c9b4a9f3156afce4627c325f2b6e71..d55f7eb22cf867f0805b0afb907b402c252f7b1a 100644 (file)
@@ -186,7 +186,6 @@ dijkstra_bounded(int vertex, vtx_data * graph, int n, DistType * dist,
     int i;
     static boolean *node_in_neighborhood = NULL;
     static int size = 0;
-    static int *index;
     Queue Q;
     heap H;
     int closestVertex, neighbor;
@@ -212,8 +211,7 @@ dijkstra_bounded(int vertex, vtx_data * graph, int n, DistType * dist,
        node_in_neighborhood[visited_nodes[i]] = TRUE;
     }
 
-
-    index = realloc(index, n * sizeof(int));
+    int *index = gcalloc(n, sizeof(int));
 
     /* initial distances with edge weights: */
     for (i = 0; i < n; i++)    /* far, TOO COSTLY (O(n))! */
@@ -247,6 +245,7 @@ dijkstra_bounded(int vertex, vtx_data * graph, int n, DistType * dist,
        node_in_neighborhood[visited_nodes[i]] = FALSE;
     }
     freeHeap(&H);
+    free(index);
     freeQueue(&Q);
     return num_visited_nodes;
 }