X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/2dacd344720d07a79a3116387618bee9c0b63fa2..2f2ce19fcb66a634c19de8dda2dc4b4896203537:/src/surf/surf_routing.cpp diff --git a/src/surf/surf_routing.cpp b/src/surf/surf_routing.cpp index e39b3e733a..cb3672ceff 100644 --- a/src/surf/surf_routing.cpp +++ b/src/surf/surf_routing.cpp @@ -397,7 +397,7 @@ void routing_AS_begin(sg_platf_AS_cbarg_t AS) info->p_rcComponent = new_as->p_routingFather; info->p_rcType = SURF_NETWORK_ELEMENT_AS; - info->p_name = new_as->p_name; + info->p_name = xbt_strdup(new_as->p_name); xbt_lib_set(as_router_lib, info->p_name, ROUTING_ASR_LEVEL, (void *) info); @@ -542,7 +542,7 @@ static void _get_route_and_latency(RoutingEdgePtr src, RoutingEdgePtr dst, /* Common ancestor is kind enough to declare a bypass route from src to dst -- use it and bail out */ if (e_route_bypass) { xbt_dynar_merge(links, &e_route_bypass->link_list); - //FIXME:generic_free_route(e_route_bypass); + generic_free_route(e_route_bypass); return; } @@ -1263,13 +1263,15 @@ static void finalize_rec(AsPtr as) { /** \brief Frees all memory allocated by the routing module */ void routing_exit(void) { - if (!routing_platf) - return; - xbt_dynar_free(&routing_platf->p_lastRoute); - finalize_rec(routing_platf->p_root); delete routing_platf; } +RoutingPlatf::~RoutingPlatf() +{ + xbt_dynar_free(&p_lastRoute); + finalize_rec(p_root); +} + AS_t surf_AS_get_routing_root() { return routing_platf->p_root; }