Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
API format unification
[simgrid.git] / src / s4u / s4u_as.cpp
index 56864b5..685cefc 100644 (file)
@@ -36,7 +36,6 @@ namespace simgrid {
 
 
       xbt_dict_free(&children_);
-      xbt_dynar_free(&vertices_);
       for (auto &kv : bypassRoutes_)
         delete kv.second;
       xbt_free(name_);
@@ -58,9 +57,8 @@ namespace simgrid {
     {
       xbt_dynar_t res =  xbt_dynar_new(sizeof(sg_host_t), nullptr);
 
-      for (unsigned int index = 0; index < xbt_dynar_length(vertices_); index++) {
-        kernel::routing::NetCard *card = xbt_dynar_get_as(vertices_, index, kernel::routing::NetCard*);
-        s4u::Host                *host = simgrid::s4u::Host::by_name_or_null(card->name());
+      for (auto card : vertices_) {
+        s4u::Host *host = simgrid::s4u::Host::by_name_or_null(card->name());
         if (host!=nullptr)
           xbt_dynar_push(res, &host);
       }
@@ -68,8 +66,8 @@ namespace simgrid {
     }
 
     int As::addComponent(kernel::routing::NetCard *elm) {
-      xbt_dynar_push_as(vertices_, kernel::routing::NetCard*, elm);
-      return xbt_dynar_length(vertices_)-1;
+      vertices_.push_back(elm);
+      return vertices_.size()-1; // The rank of the newly created object
     }
 
     void As::addRoute(sg_platf_route_cbarg_t /*route*/){