Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
fixed a bug in add_route in all models + dict uses DJB2 hash func now + modified...
[simgrid.git] / src / surf / workstation_ptask_L07.c
index b78601f..2d553ae 100644 (file)
@@ -485,10 +485,8 @@ static surf_action_t execute_parallel_task(int workstation_nb,
   int nb_host = 0;
   double latency = 0.0;
 
-  if (parallel_task_link_set == NULL) {
-    parallel_task_link_set =
-       xbt_dict_new_ext(workstation_nb * workstation_nb * 10);
-  }
+  if (parallel_task_link_set == NULL)
+    parallel_task_link_set = xbt_dict_new();
 
   xbt_dict_reset(parallel_task_link_set);
 
@@ -910,7 +908,7 @@ static void add_route(void)
     int link_list_capacity = 0;
     link_L07_t *link_list = NULL;
     xbt_dict_cursor_t cursor = NULL;
-    char *key,*data;
+    char *key,*data, *end;
     const char *sep = "#";
     xbt_dynar_t links, keys;
 
@@ -921,8 +919,8 @@ static void add_route(void)
        links = (xbt_dynar_t)data;
        keys = xbt_str_split_str(key, sep);
        
-       src_id = atoi(xbt_dynar_get_as(keys, 0, char*));
-       dst_id = atoi(xbt_dynar_get_as(keys, 1, char*));
+       src_id = strtol(xbt_dynar_get_as(keys, 0, char*), &end, 16);
+       dst_id = strtol(xbt_dynar_get_as(keys, 1, char*), &end, 16);
 
        link_list_capacity = xbt_dynar_length(links);
        link_list = xbt_new(link_L07_t, link_list_capacity);
@@ -937,7 +935,6 @@ static void add_route(void)
          }    
        }
        route_new(src_id, dst_id, link_list, nb_link);
-       xbt_dynar_free(&links);
    }
 
    xbt_dict_free(&route_table);
@@ -1099,8 +1096,8 @@ static void model_init_internal(void)
 
   surf_workstation_model->common_public->get_properties = get_properties;
 
-  workstation_set = xbt_dict_new_ext(1024);
-  link_set = xbt_dict_new_ext(1024);
+  workstation_set = xbt_dict_new();
+  link_set = xbt_dict_new();
 
   if (!ptask_maxmin_system)
     ptask_maxmin_system = lmm_system_new();