static void fdp_cleanup_graph(graph_t * g) { cleanup_subgs(g); free(GD_neato_nlist(g)); free(GD_alg(g)); if (g != g->root) memset(&(g->u), 0, sizeof(Agraphinfo_t)); }
static void cleanup_subgs(graph_t * g) { graph_t *mg; edge_t *me; node_t *mn; graph_t *subg; mg = g->meta_node->graph; for (me = agfstout(mg, g->meta_node); me; me = agnxtout(mg, me)) { mn = me->head; subg = agusergraph(mn); free_label(GD_label(subg)); if (GD_alg(subg)) { free(PORTS(subg)); free(GD_alg(subg)); } cleanup_subgs(subg); } }
static void freeGData(graph_t * g) { free(GD_alg(g)); }