Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
mornign cleanups
[simgrid.git] / src / kernel / routing / TorusZone.cpp
index 11e544c..c6012b1 100644 (file)
@@ -83,7 +83,6 @@ void TorusZone::parse_specific_arguments(ClusterCreationArgs* cluster)
 
 void TorusZone::get_local_route(NetPoint* src, NetPoint* dst, RouteCreationArgs* route, double* lat)
 {
-
   XBT_VERB("torus getLocalRoute from '%s'[%u] to '%s'[%u]", src->get_cname(), src->id(), dst->get_cname(), dst->id());
 
   if (dst->is_router() || src->is_router())
@@ -108,8 +107,8 @@ void TorusZone::get_local_route(NetPoint* src, NetPoint* dst, RouteCreationArgs*
    * both arrays, we can easily assess whether we need to route into this dimension or not.
    */
   const unsigned int dsize = dimensions_.size();
-  unsigned int myCoords[dsize];
-  unsigned int targetCoords[dsize];
+  unsigned int* myCoords = new unsigned int[dsize];
+  unsigned int* targetCoords= new unsigned int[dsize];
   unsigned int dim_size_product = 1;
   for (unsigned i = 0; i < dsize; i++) {
     unsigned cur_dim_size = dimensions_[i];
@@ -134,7 +133,6 @@ void TorusZone::get_local_route(NetPoint* src, NetPoint* dst, RouteCreationArgs*
       const unsigned cur_dim = dimensions_[j];
       // current_node/dim_product = position in current dimension
       if ((current_node / dim_product) % cur_dim != (dst->id() / dim_product) % cur_dim) {
-
         if ((targetCoords[j] > myCoords[j] &&
              targetCoords[j] <= myCoords[j] + cur_dim / 2) // Is the target node on the right, without the wrap-around?
             || (myCoords[j] > cur_dim / 2 &&
@@ -187,7 +185,9 @@ void TorusZone::get_local_route(NetPoint* src, NetPoint* dst, RouteCreationArgs*
 
     current_node = next_node;
   }
+  delete[] myCoords;
+  delete[] targetCoords;
 }
-}
-}
-} // namespace
+} // namespace routing
+} // namespace kernel
+} // namespace simgrid