From eca1c9c7300542a49ee7c635dc10a678a87aca43 Mon Sep 17 00:00:00 2001 From: Frederic Suter Date: Mon, 6 Nov 2017 21:43:36 +0100 Subject: [PATCH] take care of mismatched new/delete --- src/smpi/internals/instr_smpi.cpp | 4 ++-- src/smpi/internals/smpi_replay.cpp | 14 +++++++------- 2 files changed, 9 insertions(+), 9 deletions(-) diff --git a/src/smpi/internals/instr_smpi.cpp b/src/smpi/internals/instr_smpi.cpp index 758347897a..8589befad8 100644 --- a/src/smpi/internals/instr_smpi.cpp +++ b/src/smpi/internals/instr_smpi.cpp @@ -108,9 +108,9 @@ static std::unordered_map process_category; static void cleanup_extra_data (instr_extra_data extra){ if(extra!=nullptr){ if(extra->sendcounts!=nullptr) - xbt_free(extra->sendcounts); + delete[] extra->sendcounts; if(extra->recvcounts!=nullptr) - xbt_free(extra->recvcounts); + delete[] extra->recvcounts; xbt_free(extra); } } diff --git a/src/smpi/internals/smpi_replay.cpp b/src/smpi/internals/smpi_replay.cpp index 60cedeff88..d4102d2c9f 100644 --- a/src/smpi/internals/smpi_replay.cpp +++ b/src/smpi/internals/smpi_replay.cpp @@ -672,9 +672,9 @@ static void action_gatherv(const char *const *action) { recv = smpi_get_tmp_recvbuffer(recv_sum* MPI_CURRENT_TYPE2->size()); instr_extra_data extra = xbt_new0(s_instr_extra_data_t,1); - extra->type = TRACING_GATHERV; - extra->send_size = send_size; - extra->recvcounts= xbt_new(int,comm_size); + extra->type = TRACING_GATHERV; + extra->send_size = send_size; + extra->recvcounts = new int[comm_size]; for(int i=0; i< comm_size; i++)//copy data to avoid bad free extra->recvcounts[i] = recvcounts[i]; extra->root = root; @@ -718,7 +718,7 @@ static void action_reducescatter(const char *const *action) { instr_extra_data extra = xbt_new0(s_instr_extra_data_t,1); extra->type = TRACING_REDUCE_SCATTER; extra->send_size = 0; - extra->recvcounts= xbt_new(int, comm_size); + extra->recvcounts = new int[comm_size]; for(int i=0; i< comm_size; i++)//copy data to avoid bad free extra->recvcounts[i] = recvcounts[i]; extra->datatype1 = encode_datatype(MPI_CURRENT_TYPE); @@ -816,7 +816,7 @@ static void action_allgatherv(const char *const *action) { instr_extra_data extra = xbt_new0(s_instr_extra_data_t,1); extra->type = TRACING_ALLGATHERV; extra->send_size = sendcount; - extra->recvcounts= xbt_new(int, comm_size); + extra->recvcounts = new int[comm_size]; for(int i=0; i< comm_size; i++)//copy data to avoid bad free extra->recvcounts[i] = recvcounts[i]; extra->datatype1 = encode_datatype(MPI_CURRENT_TYPE); @@ -874,8 +874,8 @@ static void action_allToAllv(const char *const *action) { int rank = smpi_process()->index(); instr_extra_data extra = xbt_new0(s_instr_extra_data_t,1); extra->type = TRACING_ALLTOALLV; - extra->recvcounts= xbt_new(int, comm_size); - extra->sendcounts= xbt_new(int, comm_size); + extra->recvcounts = new int[comm_size]; + extra->sendcounts = new int[comm_size]; extra->num_processes = comm_size; for(int i=0; i< comm_size; i++){//copy data to avoid bad free -- 2.20.1