X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/8d5e9d3ae9f7e007e1dfefc1a335d72623335e01..6de03ecc4e630732984a0673512a5d15fd75e270:/src/smpi/smpi_base.c diff --git a/src/smpi/smpi_base.c b/src/smpi/smpi_base.c index 1887ec0067..fa4e70dc99 100644 --- a/src/smpi/smpi_base.c +++ b/src/smpi/smpi_base.c @@ -370,7 +370,7 @@ void smpi_mpi_start(MPI_Request request) request->refcount++; if(request->old_type->has_subtype == 0){ oldbuf = request->buf; - if (oldbuf && request->size!=0){ + if (!_xbt_replay_is_active() && oldbuf && request->size!=0){ request->buf = xbt_malloc(request->size); memcpy(request->buf,oldbuf,request->size); } @@ -765,7 +765,7 @@ void smpi_mpi_wait(MPI_Request * request, MPI_Status * status) if ((*request)->action != NULL) { // this is not a detached send simcall_comm_wait((*request)->action, -1.0); #ifdef HAVE_MC - if(MC_is_active()) + if(MC_is_active() && (*request)->action) (*request)->action->comm.dst_data = NULL; // dangling pointer : dst_data is freed with a wait, need to set it to NULL for system state comparison #endif }