X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/3c9feb6ee162497152386c3b5d193a500604e414..779e0e58a8ec8674bef9f53c0f80ea021a4f5063:/src/xbt/graph.c diff --git a/src/xbt/graph.c b/src/xbt/graph.c index b51fb15414..8fdec17743 100644 --- a/src/xbt/graph.c +++ b/src/xbt/graph.c @@ -1,7 +1,7 @@ /* a generic graph library. */ -/* Copyright (c) 2006 Darina Dimitrova, Arnaud Legrand. */ -/* All rights reserved. */ +/* Copyright (c) 2006, 2007, 2008, 2009, 2010. The SimGrid Team. + * All rights reserved. */ /* This program is free software; you can redistribute it and/or modify it * under the terms of the license (GNU LGPL) which comes with this package. */ @@ -78,19 +78,20 @@ xbt_edge_t xbt_graph_new_edge(xbt_graph_t g, return edge; } -xbt_edge_t xbt_graph_get_edge(xbt_graph_t g, xbt_node_t src, xbt_node_t dst) +xbt_edge_t xbt_graph_get_edge(xbt_graph_t g, xbt_node_t src, + xbt_node_t dst) { xbt_edge_t edge; unsigned int cursor; xbt_dynar_foreach(src->out, cursor, edge) { - DEBUG3("%p = %p--%p", edge, edge->src, edge->dst); + XBT_DEBUG("%p = %p--%p", edge, edge->src, edge->dst); if ((edge->src == src) && (edge->dst == dst)) return edge; } if (!g->directed) { xbt_dynar_foreach(src->out, cursor, edge) { - DEBUG3("%p = %p--%p", edge, edge->src, edge->dst); + XBT_DEBUG("%p = %p--%p", edge, edge->src, edge->dst); if ((edge->dst == src) && (edge->src == dst)) return edge; } @@ -149,16 +150,16 @@ void xbt_graph_free_graph(xbt_graph_t g, } xbt_dynar_foreach(g->nodes, cursor, node) - free(node); + free(node); xbt_dynar_free(&(g->nodes)); xbt_dynar_foreach(g->edges, cursor, edge) - free(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; } @@ -190,7 +191,7 @@ void xbt_graph_free_node(xbt_graph_t g, xbt_node_t n, cursor = 0; xbt_dynar_foreach(g->nodes, cursor, node) - if (node == n) + if (node == n) xbt_dynar_cursor_rm(g->nodes, &cursor); xbt_dynar_free(&(n->in)); @@ -450,7 +451,7 @@ xbt_edge_t *xbt_graph_spanning_tree_prim(xbt_graph_t g) node->xbtdata = (void *) 1; edge_list = node->out; xbt_dynar_foreach(edge_list, cursor, e) - xbt_heap_push(heap, e, -(e->length)); + xbt_heap_push(heap, e, -(e->length)); while ((edge = xbt_heap_pop(heap))) { if ((edge->src->xbtdata) && (edge->dst->xbtdata)) @@ -504,10 +505,10 @@ xbt_node_t *xbt_graph_topo_sort(xbt_graph_t g) 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_graph_depth_visit(g, node, sorted, &idx); xbt_dynar_foreach(g->nodes, cursor, node) { free(node->xbtdata); @@ -551,7 +552,7 @@ static void *(*__parse_edge_label_and_data) (xbt_edge_t, const char *, static void __parse_graph_begin(void) { - DEBUG0(""); + XBT_DEBUG(""); if (A_graphxml_graph_isDirected == A_graphxml_graph_isDirected_true) parsed_graph = xbt_graph_new_graph(1, NULL); else @@ -563,19 +564,21 @@ static void __parse_graph_begin(void) static void __parse_graph_end(void) { xbt_dict_free(&parsed_nodes); - DEBUG0(""); + XBT_DEBUG(""); } static void __parse_node(void) { xbt_node_t node = xbt_graph_new_node(parsed_graph, NULL); - DEBUG1("", A_graphxml_node_name); + XBT_DEBUG("", A_graphxml_node_name); if (__parse_node_label_and_data) node->data = __parse_node_label_and_data(node, A_graphxml_node_label, A_graphxml_node_data); - xbt_graph_parse_get_double(&(node->position_x), A_graphxml_node_position_x); - xbt_graph_parse_get_double(&(node->position_y), A_graphxml_node_position_y); + xbt_graph_parse_get_double(&(node->position_x), + A_graphxml_node_position_x); + xbt_graph_parse_get_double(&(node->position_y), + A_graphxml_node_position_y); xbt_dict_set(parsed_nodes, A_graphxml_node_name, (void *) node, NULL); } @@ -595,7 +598,7 @@ static void __parse_edge(void) xbt_graph_parse_get_double(&(edge->length), A_graphxml_edge_length); - DEBUG3("", + XBT_DEBUG("", (char *) (edge->src)->data, (char *) (edge->dst)->data, xbt_graph_edge_get_length(edge)); } @@ -623,7 +626,9 @@ xbt_graph_t xbt_graph_read(const char *filename, ETag_graphxml_edge_fun = __parse_edge; xbt_graph_parse_open(filename); - xbt_assert1((!(*xbt_graph_parse) ()), "Parse error in %s", filename); + int res; + res = (*xbt_graph_parse) (); + xbt_assert1(!res, "Parse error in %s", filename); xbt_graph_parse_close(); graph = parsed_graph;