X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/a7c05e186c0c2c4555d127909c1898f0668c050c..b96ca38c1b2f4ac542ae921e3645f78c640765fc:/src/surf/AsFull.cpp
diff --git a/src/surf/AsFull.cpp b/src/surf/AsFull.cpp
index 07c585119d..37d3ff7709 100644
--- a/src/surf/AsFull.cpp
+++ b/src/surf/AsFull.cpp
@@ -36,7 +36,8 @@ void AsFull::seal() {
e_route = xbt_new0(s_sg_platf_route_cbarg_t, 1);
e_route->gw_src = NULL;
e_route->gw_dst = NULL;
- e_route->link_list.push_back(routing_platf->loopback_);
+ e_route->link_list = new std::vector();
+ e_route->link_list->push_back(routing_platf->loopback_);
TO_ROUTE_FULL(i, i) = e_route;
}
}
@@ -46,11 +47,15 @@ void AsFull::seal() {
AsFull::~AsFull(){
if (routingTable_) {
int table_size = (int)xbt_dynar_length(vertices_);
+ int i, j;
/* Delete routing table */
- for (int i = 0; i < table_size; i++)
- for (int j = 0; j < table_size; j++)
- if (TO_ROUTE_FULL(i,j))
+ for (i = 0; i < table_size; i++)
+ for (j = 0; j < table_size; j++) {
+ if (TO_ROUTE_FULL(i,j)){
+ delete TO_ROUTE_FULL(i,j)->link_list;
xbt_free(TO_ROUTE_FULL(i,j));
+ }
+ }
xbt_free(routingTable_);
}
}
@@ -70,8 +75,8 @@ void AsFull::getRouteAndLatency(NetCard *src, NetCard *dst, sg_platf_route_cbarg
if (e_route) {
res->gw_src = e_route->gw_src;
res->gw_dst = e_route->gw_dst;
- for (auto link : e_route->link_list) {
- res->link_list.push_back(link);
+ for (auto link : *e_route->link_list) {
+ res->link_list->push_back(link);
if (lat)
*lat += static_cast(link)->getLatency();
}
@@ -103,7 +108,7 @@ void AsFull::addRoute(sg_platf_route_cbarg_t route)
/* Add the route to the base */
TO_ROUTE_FULL(src_net_elm->id(), dst_net_elm->id()) = newExtendedRoute(hierarchy_, route, 1);
- TO_ROUTE_FULL(src_net_elm->id(), dst_net_elm->id())->link_list.shrink_to_fit();
+ TO_ROUTE_FULL(src_net_elm->id(), dst_net_elm->id())->link_list->shrink_to_fit();
if (route->symmetrical == true && src_net_elm != dst_net_elm) {
if (route->gw_dst && route->gw_src) {
@@ -120,7 +125,7 @@ void AsFull::addRoute(sg_platf_route_cbarg_t route)
"The route between %s and %s already exists. You should not declare the reverse path as symmetrical.", dst,src);
TO_ROUTE_FULL(dst_net_elm->id(), src_net_elm->id()) = newExtendedRoute(hierarchy_, route, 0);
- TO_ROUTE_FULL(dst_net_elm->id(), src_net_elm->id())->link_list.shrink_to_fit();
+ TO_ROUTE_FULL(dst_net_elm->id(), src_net_elm->id())->link_list->shrink_to_fit();
}
}