From 1f43676e503727ce56b7b661fb129d2370a1adc5 Mon Sep 17 00:00:00 2001 From: alegrand Date: Tue, 9 May 2006 15:59:25 +0000 Subject: [PATCH] Pluging mem leaks. git-svn-id: svn+ssh://scm.gforge.inria.fr/svn/simgrid/simgrid/trunk@2199 48e7efb5-ca39-0410-a469-dd3cf9ba447f --- src/xbt/graph.c | 28 ++++++++++++++-------------- 1 file changed, 14 insertions(+), 14 deletions(-) diff --git a/src/xbt/graph.c b/src/xbt/graph.c index cbe13d7732..73ae7a61b6 100644 --- a/src/xbt/graph.c +++ b/src/xbt/graph.c @@ -161,17 +161,18 @@ void xbt_graph_free_node(xbt_graph_t g, xbt_node_t n, else xbt_dynar_cursor_step( g->edges, &cursor); } - - if ((node_free_function) && (n->data)) + if ((node_free_function) && (n->data)) node_free_function(n->data); cursor = 0; xbt_dynar_foreach(g->nodes, cursor, node) - { - if (node == n) - xbt_dynar_cursor_rm(g->nodes, &cursor); + if (node == n) + xbt_dynar_cursor_rm(g->nodes, &cursor); + + xbt_dynar_free(&(n->in)); + xbt_dynar_free(&(n->out)); - } + free(n); return; } @@ -489,19 +490,18 @@ xbt_node_t* xbt_graph_topo_sort(xbt_graph_t g) idx=n-1; sorted=xbt_malloc(n*sizeof(xbt_node_t)); + xbt_dynar_foreach(g->nodes,cursor , node) - { - node->xbtdata=xbt_new0(int,1); - } + node->xbtdata=xbt_new0(int,1); xbt_dynar_foreach(g->nodes,cursor , node) - { xbt_graph_depth_visit(g,node,sorted,&idx); - } - xbt_dynar_foreach(g->nodes, cursor, node) - { + + xbt_dynar_foreach(g->nodes, cursor, node) { + free(node->xbtdata); node->xbtdata = NULL; - } + } + return sorted; } -- 2.20.1