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;