Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
The windows implementation of simgrid use now the portable snprintf so, enable the...
[simgrid.git] / src / xbt / graph.c
index 184da8f..c927ef2 100644 (file)
@@ -20,7 +20,7 @@
 
 
 
-XBT_LOG_NEW_DEFAULT_SUBCATEGORY(graph, xbt, "Graph");
+XBT_LOG_NEW_DEFAULT_SUBCATEGORY(xbt_graph, xbt, "Graph");
 
 
 
@@ -86,12 +86,12 @@ xbt_edge_t xbt_graph_get_edge(xbt_graph_t g, xbt_node_t src, xbt_node_t dst)
   int cursor;
 
   xbt_dynar_foreach(src->out, cursor, edge) {
-    INFO3("%p = %p--%p",edge,edge->src,edge->dst);
+    DEBUG3("%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) {
-      INFO3("%p = %p--%p",edge,edge->src,edge->dst);
+      DEBUG3("%p = %p--%p",edge,edge->src,edge->dst);
       if((edge->dst==src) && (edge->src==dst)) return edge;
     }
   }
@@ -124,9 +124,9 @@ void xbt_graph_edge_set_data(xbt_edge_t edge, void *data)
  * Free the graph structure. 
  */
 void xbt_graph_free_graph(xbt_graph_t g,
-                         void node_free_function(void *ptr),
-                         void edge_free_function(void *ptr),
-                         void graph_free_function(void *ptr))
+                         void_f_pvoid_t * node_free_function,
+                         void_f_pvoid_t * edge_free_function,
+                         void_f_pvoid_t * graph_free_function)
 {
   int cursor = 0;
   xbt_node_t node = NULL;
@@ -137,12 +137,12 @@ void xbt_graph_free_graph(xbt_graph_t g,
     xbt_dynar_free(&(node->out));
     xbt_dynar_free(&(node->in));
     if (node_free_function)
-      node_free_function(node->data);
+      (*node_free_function)(node->data);
   }
 
   xbt_dynar_foreach(g->edges, cursor, edge) {
     if (edge_free_function)
-      edge_free_function(edge->data);
+      (*edge_free_function)(edge->data);
   }
 
   xbt_dynar_foreach(g->nodes, cursor, node)
@@ -173,12 +173,12 @@ void xbt_graph_free_node(xbt_graph_t g, xbt_node_t n,
   nbr = xbt_dynar_length(g->edges);
   cursor = 0;
   for (i = 0; i < nbr; i++) {
-    xbt_dynar_cursor_get(g->edges, &cursor, &edge);
+    xbt_dynar_get_cpy(g->edges, cursor, &edge);
 
     if ((edge->dst == n) || (edge->src == n)) {
       xbt_graph_free_edge(g, edge, edge_free_function);
     } else
-      xbt_dynar_cursor_step(g->edges, &cursor);
+      cursor ++;
   }
 
   if ((node_free_function) && (n->data))
@@ -199,14 +199,14 @@ void xbt_graph_free_node(xbt_graph_t g, xbt_node_t n,
 
 /** @brief remove the given edge from the given graph */
 void xbt_graph_free_edge(xbt_graph_t g, xbt_edge_t e,
-                        void free_function(void *ptr))
+                        void_f_pvoid_t *free_function)
 {
   int idx;
   int cursor = 0;
   xbt_edge_t edge = NULL;
 
   if ((free_function) && (e->data))
-    free_function(e->data);
+    (*free_function)(e->data);
 
   xbt_dynar_foreach(g->edges, cursor, edge) {
     if (edge == e) {