Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
Clean surf interface
[simgrid.git] / src / surf / network_smpi.cpp
index 64dc992..a023019 100644 (file)
@@ -89,11 +89,19 @@ NetworkSmpiModel::~NetworkSmpiModel(){
   if (gap_lookup) {
     xbt_dict_free(&gap_lookup);
   }
+  if (smpi_bw_factor) {
+    xbt_dynar_free(&smpi_bw_factor);
+    smpi_bw_factor = NULL;
+  }
+  if (smpi_lat_factor) {
+    xbt_dynar_free(&smpi_lat_factor);
+    smpi_lat_factor = NULL;
+  }
 }
 
-void NetworkSmpiModel::gapAppend(double size, const NetworkCm02LinkLmmPtr link, NetworkCm02ActionLmmPtr action)
+void NetworkSmpiModel::gapAppend(double size, const NetworkLinkLmmPtr link, NetworkActionLmmPtr action)
 {
-  const char *src = link->m_name;
+  const char *src = link->getName();
   xbt_fifo_t fifo;
   //surf_action_network_CM02_t last_action;
   //double bw;
@@ -184,13 +192,12 @@ double NetworkSmpiModel::latencyFactor(double size)
   xbt_dynar_foreach(smpi_lat_factor, iter, fact) {
     if (size <= fact.factor) {
       XBT_DEBUG("%f <= %ld return %f", size, fact.factor, current);
-      xbt_dynar_free(&smpi_lat_factor);
       return current;
     }else
       current=fact.value;
   }
   XBT_DEBUG("%f > %ld return %f", size, fact.factor, current);
-  xbt_dynar_free(&smpi_lat_factor);
+
   return current;
 }