X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/1a1c52b967de67cce8c9c5eefab40b8ca7c106a4..ac307dad2932084d3b5b5af7bcd298d057649c1a:/src/smpi/mpi/smpi_op.cpp diff --git a/src/smpi/mpi/smpi_op.cpp b/src/smpi/mpi/smpi_op.cpp index bb52d0e4ec..0da76e479f 100644 --- a/src/smpi/mpi/smpi_op.cpp +++ b/src/smpi/mpi/smpi_op.cpp @@ -196,7 +196,7 @@ static void no_func(void*, void*, int*, MPI_Datatype*) } #define CREATE_MPI_OP(name, func) \ - static SMPI_Op mpi_##name (&(func) /* func */, true ); \ + static SMPI_Op mpi_##name (&(func) /* func */, true, true ); \ MPI_Op name = &mpi_##name; CREATE_MPI_OP(MPI_MAX, max_func); @@ -249,7 +249,7 @@ void Op::ref(){ void Op::unref(MPI_Op* op){ if((*op)!=MPI_OP_NULL){ (*op)->refcount_--; - if((*op)->refcount_==0) + if((*op)->refcount_==0 && (*op)->predefined_==false) delete(*op); } }