]> granicus.if.org Git - graphviz/commitdiff
Fix space leak in fdp.
authorerg <devnull@localhost>
Mon, 25 Jun 2007 18:42:47 +0000 (18:42 +0000)
committererg <devnull@localhost>
Mon, 25 Jun 2007 18:42:47 +0000 (18:42 +0000)
lib/fdpgen/layout.c

index d3900857bff0c5e2b7bd337565e2500559ac16fa..9cfb7ab35bee2fb45d4d4a1ca60bf518a6e9baab 100644 (file)
@@ -205,6 +205,8 @@ static void freeDerivedGraph(graph_t * g, graph_t ** cc)
 {
     graph_t *cg;
     node_t *dn;
+    node_t *dnxt;
+    edge_t *e;
 
     while ((cg = *cc++)) {
        freeGData(cg);
@@ -212,8 +214,13 @@ static void freeDerivedGraph(graph_t * g, graph_t ** cc)
     if (PORTS(g))
        free(PORTS(g));
     freeGData(g);
-    for (dn = agfstnode(g); dn; dn = agnxtnode(g, dn))
+    for (dn = agfstnode(g); dn; dn = dnxt) {
+       dnxt = agnxtnode(g, dn);
+       for (e = agfstout(g, dn); e; e = agnxtout(g, e)) {
+           free (ED_to_virt(e));
+       }
        freeDeriveNode(dn);
+    }
     agclose(g);
 }