X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/fa8e71be179a7a12e74bcc550fa6fe2c54b8446a..34cab90599e2c8583d07c9fb77e37e7c46e04f7e:/src/xbt/graph.c diff --git a/src/xbt/graph.c b/src/xbt/graph.c index fdf9f5f07d..50eee15c2d 100644 --- a/src/xbt/graph.c +++ b/src/xbt/graph.c @@ -140,35 +140,30 @@ void xbt_graph_free_graph(xbt_graph_t g, void_f_pvoid_t edge_free_function, void_f_pvoid_t graph_free_function) { - unsigned int cursor = 0; - xbt_node_t node = NULL; - xbt_edge_t edge = NULL; + unsigned int cursor; + xbt_node_t node; + xbt_edge_t edge; + xbt_dynar_foreach(g->edges, cursor, edge) { + if (edge_free_function) + edge_free_function(edge->data); + free(edge); + } + xbt_dynar_free(&(g->edges)); xbt_dynar_foreach(g->nodes, cursor, node) { xbt_dynar_free(&(node->out)); xbt_dynar_free(&(node->in)); if (node_free_function) node_free_function(node->data); + free(node); } - - xbt_dynar_foreach(g->edges, cursor, edge) { - if (edge_free_function) - edge_free_function(edge->data); - } - - xbt_dynar_foreach(g->nodes, cursor, node) - free(node); xbt_dynar_free(&(g->nodes)); - xbt_dynar_foreach(g->edges, cursor, edge) - free(edge); - xbt_dynar_free(&(g->edges)); if (graph_free_function) graph_free_function(g->data); free(g); xbt_graph_parse_lex_destroy(); - return; } @@ -584,8 +579,8 @@ static void __parse_node(void) if (__parse_node_label_and_data) node->data = __parse_node_label_and_data(node, A_graphxml_node_label, A_graphxml_node_data); - node->position_x = xbt_graph_parse_get_double(A_graphxml_node_position_x); - node->position_y = xbt_graph_parse_get_double(A_graphxml_node_position_y); + node->position_x = xbt_graph_parse_get_double(A_graphxml_node_position___x); + node->position_y = xbt_graph_parse_get_double(A_graphxml_node_position___y); xbt_dict_set(parsed_nodes, A_graphxml_node_name, (void *) node, NULL); }