From 7f80c96356063a741966f244c8d00eaaf6f17fc0 Mon Sep 17 00:00:00 2001 From: Gabriel Corona Date: Mon, 8 Jun 2015 13:12:31 +0200 Subject: [PATCH] [mc] Make s_local_variable::name a std::string --- src/mc/mc_checkpoint.cpp | 7 +++---- src/mc/mc_compare.cpp | 6 +++--- src/mc/mc_snapshot.h | 2 +- 3 files changed, 7 insertions(+), 8 deletions(-) diff --git a/src/mc/mc_checkpoint.cpp b/src/mc/mc_checkpoint.cpp index cda2505020..05c9faff31 100644 --- a/src/mc/mc_checkpoint.cpp +++ b/src/mc/mc_checkpoint.cpp @@ -64,8 +64,7 @@ static void MC_snapshot_stack_free_voidp(void *s) 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) @@ -306,10 +305,10 @@ static void mc_fill_local_variables_values(mc_stack_frame_t stack_frame, 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->name = xbt_strdup(current_variable->name); + new_var->name = current_variable->name; new_var->type = current_variable->type; new_var->region = region_type; diff --git a/src/mc/mc_compare.cpp b/src/mc/mc_compare.cpp index 56b01f6a8e..6bf43b370c 100644 --- a/src/mc/mc_compare.cpp +++ b/src/mc/mc_compare.cpp @@ -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); - 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->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; @@ -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", - 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; } diff --git a/src/mc/mc_snapshot.h b/src/mc/mc_snapshot.h index 30c9e1cb11..b8f5f58c1e 100644 --- a/src/mc/mc_snapshot.h +++ b/src/mc/mc_snapshot.h @@ -112,7 +112,7 @@ typedef struct s_mc_stack_frame { 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; -- 2.20.1