Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
[mc] Make s_local_variable::name a std::string
authorGabriel Corona <gabriel.corona@loria.fr>
Mon, 8 Jun 2015 11:12:31 +0000 (13:12 +0200)
committerGabriel Corona <gabriel.corona@loria.fr>
Tue, 9 Jun 2015 08:20:44 +0000 (10:20 +0200)
src/mc/mc_checkpoint.cpp
src/mc/mc_compare.cpp
src/mc/mc_snapshot.h

index cda2505..05c9faf 100644 (file)
@@ -64,8 +64,7 @@ static void MC_snapshot_stack_free_voidp(void *s)
 
 static void local_variable_free(local_variable_t v)
 {
 
 static void local_variable_free(local_variable_t v)
 {
-  xbt_free(v->name);
-  xbt_free(v);
+  delete(v);
 }
 
 static void local_variable_free_voidp(void *v)
 }
 
 static void local_variable_free_voidp(void *v)
@@ -306,10 +305,10 @@ static void mc_fill_local_variables_values(mc_stack_frame_t stack_frame,
     else
       region_type = 2;
 
     else
       region_type = 2;
 
-    local_variable_t new_var = xbt_new0(s_local_variable_t, 1);
+    local_variable_t new_var = new s_local_variable_t();
     new_var->subprogram = stack_frame->frame;
     new_var->ip = stack_frame->ip;
     new_var->subprogram = stack_frame->frame;
     new_var->ip = stack_frame->ip;
-    new_var->name = xbt_strdup(current_variable->name);
+    new_var->name = current_variable->name;
     new_var->type = current_variable->type;
     new_var->region = region_type;
 
     new_var->type = current_variable->type;
     new_var->region = region_type;
 
index 56b01f6..6bf43b3 100644 (file)
@@ -353,13 +353,13 @@ static int compare_local_variables(int process_index,
       current_var2 =
           (local_variable_t) xbt_dynar_get_as(stack2->local_variables, cursor,
                                               local_variable_t);
       current_var2 =
           (local_variable_t) xbt_dynar_get_as(stack2->local_variables, cursor,
                                               local_variable_t);
-      if (strcmp(current_var1->name, current_var2->name) != 0
+      if (current_var1->name != current_var2->name
           || current_var1->subprogram != current_var1->subprogram
           || current_var1->ip != current_var2->ip) {
         // TODO, fix current_varX->subprogram->name to include name if DW_TAG_inlined_subprogram
         XBT_VERB
             ("Different name of variable (%s - %s) or frame (%s - %s) or ip (%lu - %lu)",
           || current_var1->subprogram != current_var1->subprogram
           || current_var1->ip != current_var2->ip) {
         // TODO, fix current_varX->subprogram->name to include name if DW_TAG_inlined_subprogram
         XBT_VERB
             ("Different name of variable (%s - %s) or frame (%s - %s) or ip (%lu - %lu)",
-             current_var1->name, current_var2->name,
+             current_var1->name.c_str(), current_var2->name.c_str(),
              current_var1->subprogram->name, current_var2->subprogram->name,
              current_var1->ip, current_var2->ip);
         return 1;
              current_var1->subprogram->name, current_var2->subprogram->name,
              current_var1->ip, current_var2->ip);
         return 1;
@@ -378,7 +378,7 @@ static int compare_local_variables(int process_index,
         XBT_TRACE3(mc, local_diff, -1, -1, current_var1->name);
         XBT_VERB
             ("Local variable %s (%p - %p) in frame %s  is different between snapshots",
         XBT_TRACE3(mc, local_diff, -1, -1, current_var1->name);
         XBT_VERB
             ("Local variable %s (%p - %p) in frame %s  is different between snapshots",
-             current_var1->name, current_var1->address, current_var2->address,
+             current_var1->name.c_str(), current_var1->address, current_var2->address,
              current_var1->subprogram->name);
         return res;
       }
              current_var1->subprogram->name);
         return res;
       }
index 30c9e1c..b8f5f58 100644 (file)
@@ -112,7 +112,7 @@ typedef struct s_mc_stack_frame {
 typedef struct s_local_variable{
   dw_frame_t subprogram;
   unsigned long ip;
 typedef struct s_local_variable{
   dw_frame_t subprogram;
   unsigned long ip;
-  char *name;
+  std::string name;
   dw_type_t type;
   void *address;
   int region;
   dw_type_t type;
   void *address;
   int region;