From: Gabriel Corona Date: Wed, 6 Apr 2016 08:58:53 +0000 (+0200) Subject: [mc] Get rid of MC_list_comm_pattern_free() X-Git-Tag: v3_13~155 X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/commitdiff_plain/7e096d5d713b2a0704d0eed9fedea477c12d35a8 [mc] Get rid of MC_list_comm_pattern_free() --- diff --git a/src/mc/CommunicationDeterminismChecker.cpp b/src/mc/CommunicationDeterminismChecker.cpp index f016a557f0..1fec4ed1d5 100644 --- a/src/mc/CommunicationDeterminismChecker.cpp +++ b/src/mc/CommunicationDeterminismChecker.cpp @@ -337,9 +337,9 @@ void CommunicationDeterminismChecker::prepare() const int maxpid = MC_smx_get_maxpid(); // Create initial_communications_pattern elements: - initial_communications_pattern = xbt_dynar_new(sizeof(mc_list_comm_pattern_t), MC_list_comm_pattern_free_voidp); + initial_communications_pattern = simgrid::xbt::newDeleteDynar(); for (i=0; i < maxpid; i++){ - mc_list_comm_pattern_t process_list_pattern = xbt_new0(s_mc_list_comm_pattern_t, 1); + mc_list_comm_pattern_t process_list_pattern = new s_mc_list_comm_pattern_t(); process_list_pattern->list = simgrid::xbt::newDeleteDynar(); process_list_pattern->index_comm = 0; xbt_dynar_insert_at(initial_communications_pattern, i, &process_list_pattern); diff --git a/src/mc/mc_comm_pattern.cpp b/src/mc/mc_comm_pattern.cpp index 31b6bf7936..d775fcc865 100644 --- a/src/mc/mc_comm_pattern.cpp +++ b/src/mc/mc_comm_pattern.cpp @@ -127,16 +127,4 @@ void MC_handle_comm_pattern( } -static void MC_list_comm_pattern_free(mc_list_comm_pattern_t l) -{ - xbt_dynar_free(&(l->list)); - xbt_free(l); - l = nullptr; -} - -void MC_list_comm_pattern_free_voidp(void *p) -{ - MC_list_comm_pattern_free((mc_list_comm_pattern_t) * (void **) p); -} - } diff --git a/src/mc/mc_comm_pattern.h b/src/mc/mc_comm_pattern.h index b04579400e..463f378e27 100644 --- a/src/mc/mc_comm_pattern.h +++ b/src/mc/mc_comm_pattern.h @@ -49,8 +49,14 @@ typedef struct s_mc_comm_pattern{ } s_mc_comm_pattern_t, *mc_comm_pattern_t; typedef struct s_mc_list_comm_pattern{ - unsigned int index_comm; - xbt_dynar_t list; + unsigned int index_comm = 0; + xbt_dynar_t list = nullptr; + + s_mc_list_comm_pattern() {} + ~s_mc_list_comm_pattern() + { + xbt_dynar_free(&(this->list)); + } }s_mc_list_comm_pattern_t, *mc_list_comm_pattern_t; /** @@ -100,7 +106,6 @@ static inline e_mc_call_type_t MC_get_call_type(smx_simcall_t req) XBT_PRIVATE void MC_get_comm_pattern(xbt_dynar_t communications_pattern, smx_simcall_t request, e_mc_call_type_t call_type, int backtracking); XBT_PRIVATE void MC_handle_comm_pattern(e_mc_call_type_t call_type, smx_simcall_t request, int value, xbt_dynar_t current_pattern, int backtracking); -XBT_PRIVATE void MC_list_comm_pattern_free_voidp(void *p); XBT_PRIVATE void MC_complete_comm_pattern(xbt_dynar_t list, smx_synchro_t comm_addr, unsigned int issuer, int backtracking); XBT_PRIVATE void MC_restore_communications_pattern(simgrid::mc::State* state);