Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
using pointer to scalar is a strange way to return a value...
authorMartin Quinson <martin.quinson@loria.fr>
Sat, 5 Nov 2011 15:41:42 +0000 (16:41 +0100)
committerMartin Quinson <martin.quinson@loria.fr>
Sat, 5 Nov 2011 15:41:42 +0000 (16:41 +0100)
include/surf/surfxml_parse.h
include/xbt/graphxml_parse.h
src/simix/smx_deployment.c
src/surf/surf_routing.c
src/surf/surfxml_parse.c
src/surf/surfxml_parseplatf.c
src/xbt/graph.c
src/xbt/graphxml_parse.c

index ee13b83..ba6e2db 100644 (file)
@@ -56,8 +56,8 @@ XBT_PUBLIC(void) surf_parse_close(void);
 XBT_PUBLIC(void) surf_parse_init_callbacks(void);
 XBT_PUBLIC(void) surf_parse_reset_callbacks(void);
 XBT_PUBLIC(void) surf_parse_free_callbacks(void);
-XBT_PUBLIC(void) surf_parse_get_double(double *value, const char *string);
-XBT_PUBLIC(void) surf_parse_get_int(int *value, const char *string);
+XBT_PUBLIC(double) surf_parse_get_double(const char *string);
+XBT_PUBLIC(int) surf_parse_get_int(const char *string);
 XBT_PUBLIC(void) surf_parse_add_callback_config(void);
 XBT_PUBLIC(void) surf_parse_models_setup(void);
 /* Prototypes of the functions offered by flex */
index 9e3ff4f..ab0b5ee 100644 (file)
@@ -29,8 +29,7 @@ extern void_f_void_t ETag_graphxml_edge_fun;
 XBT_PUBLIC(void) xbt_graph_parse_open(const char *file);
 XBT_PUBLIC(void) xbt_graph_parse_close(void);
 XBT_PUBLIC(void) xbt_graph_parse_reset_parser(void);
-XBT_PUBLIC(void) xbt_graph_parse_get_double(double *value,
-                                            const char *string);
+XBT_PUBLIC(double) xbt_graph_parse_get_double(const char *string);
 
 /* Prototypes of the functions offered by flex */
 XBT_PUBLIC(int) xbt_graph_parse_lex(void);
index fd027fe..72e0c4c 100644 (file)
@@ -33,8 +33,8 @@ static void parse_process_init(void)
   parse_argc++;
   parse_argv = xbt_realloc(parse_argv, (parse_argc) * sizeof(char *));
   parse_argv[(parse_argc) - 1] = xbt_strdup(A_surfxml_process_function);
-  surf_parse_get_double(&start_time, A_surfxml_process_start_time);
-  surf_parse_get_double(&kill_time, A_surfxml_process_kill_time);
+  start_time= surf_parse_get_double(A_surfxml_process_start_time);
+  kill_time = surf_parse_get_double(A_surfxml_process_kill_time);
 }
 
 static void parse_argument(void)
index 5d6a515..8344e4a 100644 (file)
@@ -1610,7 +1610,7 @@ void routing_parse_Scluster(void)
     radical_ends = xbt_str_split(groups, "-");
     switch (xbt_dynar_length(radical_ends)) {
     case 1:
-               surf_parse_get_int(&start, xbt_dynar_get_as(radical_ends, 0, char *));
+               start=surf_parse_get_int(xbt_dynar_get_as(radical_ends, 0, char *));
                host_id = bprintf("%s%d%s", struct_cluster->V_cluster_prefix, start, struct_cluster->V_cluster_suffix);
                link_id = bprintf("%s_link_%d", struct_cluster->V_cluster_id, start);
 
@@ -1686,9 +1686,8 @@ void routing_parse_Scluster(void)
 
     case 2:
 
-      surf_parse_get_int(&start,
-                         xbt_dynar_get_as(radical_ends, 0, char *));
-      surf_parse_get_int(&end, xbt_dynar_get_as(radical_ends, 1, char *));
+      start=surf_parse_get_int(xbt_dynar_get_as(radical_ends, 0, char *));
+      end=  surf_parse_get_int(xbt_dynar_get_as(radical_ends, 1, char *));
       for (i = start; i <= end; i++) {
                host_id = bprintf("%s%d%s", struct_cluster->V_cluster_prefix, i, struct_cluster->V_cluster_suffix);
                link_id = bprintf("%s_link_%d", struct_cluster->V_cluster_id, i);
@@ -2002,11 +2001,11 @@ static void routing_parse_Srandom(void)
          char *random_radical = A_surfxml_random_radical;
          char *rd_name = NULL;
          char *rd_value;
-         surf_parse_get_double(&mean,A_surfxml_random_mean);
-         surf_parse_get_double(&std,A_surfxml_random_std_deviation);
-         surf_parse_get_double(&min,A_surfxml_random_min);
-         surf_parse_get_double(&max,A_surfxml_random_max);
-         surf_parse_get_double(&seed,A_surfxml_random_seed);
+         mean = surf_parse_get_double(A_surfxml_random_mean);
+         std  = surf_parse_get_double(A_surfxml_random_std_deviation);
+         min  = surf_parse_get_double(A_surfxml_random_min);
+         max  = surf_parse_get_double(A_surfxml_random_max);
+         seed = surf_parse_get_double(A_surfxml_random_seed);
 
          double res = 0;
          int i = 0;
@@ -2075,9 +2074,9 @@ static void routing_parse_Srandom(void)
                                           xbt_free(tmpbuf);
                                          break;
 
-                       case 2:   surf_parse_get_int(&start,
-                                                                                xbt_dynar_get_as(radical_ends, 0, char *));
-                                         surf_parse_get_int(&end, xbt_dynar_get_as(radical_ends, 1, char *));
+                       case 2:
+                             start = surf_parse_get_int(xbt_dynar_get_as(radical_ends, 0, char *));
+                             end = surf_parse_get_int(xbt_dynar_get_as(radical_ends, 1, char *));
                                          for (i = start; i <= end; i++) {
                                                  xbt_assert(!xbt_dict_get_or_null(random_value,random_id),"Custom Random '%s' already exists !",bprintf("%s%d",random_id,i));
                                                  res = random_generate(random);
index 0d952e2..ccbfb41 100644 (file)
@@ -25,16 +25,20 @@ static void surf_parse_error(char *msg) {
   xbt_die("Parse error on line %d: %s\n", surf_parse_lineno, msg);
 }
 
-void surf_parse_get_double(double *value, const char *string) {
-  int ret = sscanf(string, "%lg", value);
+double surf_parse_get_double(const char *string) {
+  double res;
+  int ret = sscanf(string, "%lg", &res);
   if (ret != 1)
     surf_parse_error(bprintf("%s is not a double", string));
+  return res;
 }
 
-void surf_parse_get_int(int *value, const char *string) {
-  int ret = sscanf(string, "%d", value);
+int surf_parse_get_int(const char *string) {
+  int res;
+  int ret = sscanf(string, "%d", &res);
   if (ret != 1)
     surf_parse_error(bprintf("%s is not an integer", string));
+  return res;
 }
 
 
@@ -264,8 +268,7 @@ void surf_parse_free_callbacks(void)
 
 void STag_surfxml_platform(void)
 {
-  double version;
-  surf_parse_get_double(&version, A_surfxml_platform_version);
+  double version = surf_parse_get_double(A_surfxml_platform_version);
 
   xbt_assert((version >= 1.0), "******* BIG FAT WARNING *********\n "
       "You're using an ancient XML file.\n"
@@ -298,8 +301,8 @@ void STag_surfxml_host(void){
 
        host.V_host_id = xbt_strdup(A_surfxml_host_id);
        host.V_host_power_peak = get_cpu_power(A_surfxml_host_power);
-       surf_parse_get_double(&(host.V_host_power_scale), A_surfxml_host_availability);
-       surf_parse_get_int(&(host.V_host_core),A_surfxml_host_core);
+       host.V_host_power_scale = surf_parse_get_double( A_surfxml_host_availability);
+       host.V_host_core = surf_parse_get_int(A_surfxml_host_core);
        host.V_host_power_trace = tmgr_trace_new(A_surfxml_host_availability_file);
        host.V_host_state_trace = tmgr_trace_new(A_surfxml_host_state_file);
        xbt_assert((A_surfxml_host_state == A_surfxml_host_state_ON) ||
@@ -346,14 +349,14 @@ void STag_surfxml_cluster(void){
        struct_cluster->V_cluster_prefix = xbt_strdup(A_surfxml_cluster_prefix);
        struct_cluster->V_cluster_suffix = xbt_strdup(A_surfxml_cluster_suffix);
        struct_cluster->V_cluster_radical = xbt_strdup(A_surfxml_cluster_radical);
-       surf_parse_get_double(&struct_cluster->S_cluster_power,A_surfxml_cluster_power);
-       surf_parse_get_int(&struct_cluster->S_cluster_core,A_surfxml_cluster_core);
-       surf_parse_get_double(&struct_cluster->S_cluster_bw,A_surfxml_cluster_bw);
-       surf_parse_get_double(&struct_cluster->S_cluster_lat,A_surfxml_cluster_lat);
+       struct_cluster->S_cluster_power= surf_parse_get_double(A_surfxml_cluster_power);
+       struct_cluster->S_cluster_core = surf_parse_get_int(A_surfxml_cluster_core);
+       struct_cluster->S_cluster_bw =   surf_parse_get_double(A_surfxml_cluster_bw);
+       struct_cluster->S_cluster_lat =  surf_parse_get_double(A_surfxml_cluster_lat);
        if(strcmp(A_surfxml_cluster_bb_bw,""))
-               surf_parse_get_double(&struct_cluster->S_cluster_bb_bw,A_surfxml_cluster_bb_bw);
+         struct_cluster->S_cluster_bb_bw = surf_parse_get_double(A_surfxml_cluster_bb_bw);
        if(strcmp(A_surfxml_cluster_bb_lat,""))
-               surf_parse_get_double(&struct_cluster->S_cluster_bb_lat,A_surfxml_cluster_bb_lat);
+         struct_cluster->S_cluster_bb_lat = surf_parse_get_double(A_surfxml_cluster_bb_lat);
        if(!strcmp(A_surfxml_cluster_router_id,""))
                struct_cluster->S_cluster_router_id = bprintf("%s%s_router%s",
                                struct_cluster->V_cluster_prefix,
@@ -409,9 +412,9 @@ void ETag_surfxml_peer(void){
 void STag_surfxml_link(void){
        struct_lnk = xbt_new0(s_surf_parsing_link_arg_t, 1);
        struct_lnk->V_link_id = xbt_strdup(A_surfxml_link_id);
-       surf_parse_get_double(&(struct_lnk->V_link_bandwidth),A_surfxml_link_bandwidth);
+       struct_lnk->V_link_bandwidth = surf_parse_get_double(A_surfxml_link_bandwidth);
        struct_lnk->V_link_bandwidth_file = tmgr_trace_new(A_surfxml_link_bandwidth_file);
-       surf_parse_get_double(&(struct_lnk->V_link_latency),A_surfxml_link_latency);
+       struct_lnk->V_link_latency = surf_parse_get_double(A_surfxml_link_latency);
        struct_lnk->V_link_latency_file = tmgr_trace_new(A_surfxml_link_latency_file);
        xbt_assert((A_surfxml_link_state == A_surfxml_link_state_ON) ||
                          (A_surfxml_link_state == A_surfxml_link_state_OFF), "Invalid state");
@@ -653,7 +656,7 @@ double get_cpu_power(const char *power)
       power_scale = random_generate(random);
     }
   } else {
-    surf_parse_get_double(&power_scale, power);
+    power_scale = surf_parse_get_double(power);
   }
   return power_scale;
 }
@@ -665,11 +668,10 @@ char *random_id;
 static void init_randomness(void)
 {
   random_id = A_surfxml_random_id;
-  surf_parse_get_double(&random_min, A_surfxml_random_min);
-  surf_parse_get_double(&random_max, A_surfxml_random_max);
-  surf_parse_get_double(&random_mean, A_surfxml_random_mean);
-  surf_parse_get_double(&random_std_deviation,
-                        A_surfxml_random_std_deviation);
+  random_min = surf_parse_get_double(A_surfxml_random_min);
+  random_max = surf_parse_get_double(A_surfxml_random_max);
+  random_mean = surf_parse_get_double(A_surfxml_random_mean);
+  random_std_deviation = surf_parse_get_double(A_surfxml_random_std_deviation);
   random_generator = A_surfxml_random_generator;
 }
 
index 9cfd8ea..312d100 100644 (file)
@@ -78,7 +78,7 @@ static void parse_Stag_trace(void)
 {
   trace_id = xbt_strdup(A_surfxml_trace_id);
   trace_file = xbt_strdup(A_surfxml_trace_file);
-  surf_parse_get_double(&trace_periodicity, A_surfxml_trace_periodicity);
+  trace_periodicity = surf_parse_get_double(A_surfxml_trace_periodicity);
 }
 
 static void parse_Etag_trace(void)
index 14ed08d..3d7cfca 100644 (file)
@@ -578,10 +578,8 @@ static void __parse_node(void)
   if (__parse_node_label_and_data)
     node->data = __parse_node_label_and_data(node, A_graphxml_node_label,
                                              A_graphxml_node_data);
-  xbt_graph_parse_get_double(&(node->position_x),
-                             A_graphxml_node_position_x);
-  xbt_graph_parse_get_double(&(node->position_y),
-                             A_graphxml_node_position_y);
+  node->position_x = xbt_graph_parse_get_double(A_graphxml_node_position_x);
+  node->position_y = xbt_graph_parse_get_double(A_graphxml_node_position_y);
 
   xbt_dict_set(parsed_nodes, A_graphxml_node_name, (void *) node, NULL);
 }
@@ -599,7 +597,7 @@ static void __parse_edge(void)
     edge->data = __parse_edge_label_and_data(edge, A_graphxml_edge_label,
                                              A_graphxml_edge_data);
 
-  xbt_graph_parse_get_double(&(edge->length), A_graphxml_edge_length);
+  edge->length = xbt_graph_parse_get_double(A_graphxml_edge_length);
 
   XBT_DEBUG("<edge  source=\"%s\" target=\"%s\" length=\"%f\"/>",
          (char *) (edge->src)->data,
index 34ada6c..a0af57e 100644 (file)
@@ -122,11 +122,13 @@ static int _xbt_graph_parse(void)
 
 int_f_void_t xbt_graph_parse = _xbt_graph_parse;
 
-void xbt_graph_parse_get_double(double *value, const char *string)
+double xbt_graph_parse_get_double(const char *string)
 {
+  double result;
   int ret = 0;
 
-  ret = sscanf(string, "%lg", value);
+  ret = sscanf(string, "%lg", &result);
   xbt_assert((ret == 1), "Parse error line %d : %s not a number",
               xbt_graph_parse_lineno, string);
+  return result;
 }