]> granicus.if.org Git - graphviz/commitdiff
pack ccomps: use cgraph wrappers for allocation
authorMatthew Fernandez <matthew.fernandez@gmail.com>
Wed, 21 Sep 2022 02:31:55 +0000 (19:31 -0700)
committerMatthew Fernandez <matthew.fernandez@gmail.com>
Thu, 22 Sep 2022 00:00:18 +0000 (17:00 -0700)
The lib/cgraph/alloc.h wrappers are similar to the older lib/common/memory.h
wrappers except (1) they are header-only and (2) they live in a directory
(cgraph) that is at the root of the dependency tree. The long term plan is to
replace all use of lib/common/memory.h with lib/cgraph/alloc.h.

lib/pack/ccomps.c

index 403897024d8b03891703520b2c3ece17b003a51d..04ac926a7fadbb5255d5c8f5d8be582d8fd993af 100644 (file)
@@ -243,7 +243,6 @@ Agraph_t **ccomps(Agraph_t * g, int *ncc, char *pfx)
     char *name;
     Agraph_t *out;
     Agnode_t *n;
-    Agraph_t **ccs;
     size_t len;
     size_t bnd = 10;
     stk_t stk;
@@ -254,7 +253,7 @@ Agraph_t **ccomps(Agraph_t * g, int *ncc, char *pfx)
     }
     name = setPrefix (pfx, &len, buffer, SMALLBUF);
 
-    ccs = N_GNEW(bnd, Agraph_t *);
+    Agraph_t **ccs = gv_calloc(bnd, sizeof(Agraph_t*));
     initStk(&stk, insertFn, markFn);
     for (n = agfstnode(g); n; n = agnxtnode(g, n))
        UNMARK(&stk,n);
@@ -274,14 +273,14 @@ Agraph_t **ccomps(Agraph_t * g, int *ncc, char *pfx)
            return NULL;
        }
        if (c_cnt == bnd) {
+           ccs = gv_recalloc(ccs, bnd, bnd * 2, sizeof(Agraph_t*));
            bnd *= 2;
-           ccs = RALLOC(bnd, ccs, Agraph_t *);
        }
        ccs[c_cnt] = out;
        c_cnt++;
     }
     freeStk (&stk);
-    ccs = RALLOC(c_cnt, ccs, Agraph_t *);
+    ccs = gv_recalloc(ccs, bnd, c_cnt, sizeof(Agraph_t*));
     if (name != buffer)
        free(name);
     *ncc = (int) c_cnt;