X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/8bc85164acb335cf909052b966b2ee4932e06cd7..95b8802c6392af85e218418d7a9cddec5992179c:/src/smpi/bindings/smpi_pmpi_op.cpp diff --git a/src/smpi/bindings/smpi_pmpi_op.cpp b/src/smpi/bindings/smpi_pmpi_op.cpp index 8c14f06d5b..a6200c1d98 100644 --- a/src/smpi/bindings/smpi_pmpi_op.cpp +++ b/src/smpi/bindings/smpi_pmpi_op.cpp @@ -1,4 +1,4 @@ -/* Copyright (c) 2007-2020. The SimGrid Team. All rights reserved. */ +/* Copyright (c) 2007-2021. The SimGrid Team. All rights reserved. */ /* This program is free software; you can redistribute it and/or modify it * under the terms of the license (GNU LGPL) which comes with this package. */ @@ -22,13 +22,15 @@ int PMPI_Op_free(MPI_Op * op) { CHECK_NULL(1, MPI_ERR_ARG, op) CHECK_MPI_NULL(1, MPI_OP_NULL, MPI_ERR_OP, *op) + if((*op)->is_predefined()) + return MPI_ERR_OP; simgrid::smpi::Op::unref(op); *op = MPI_OP_NULL; return MPI_SUCCESS; } int PMPI_Op_commutative(MPI_Op op, int* commute){ - CHECK_OP(1) + CHECK_MPI_NULL(1, MPI_OP_NULL, MPI_ERR_OP, op) CHECK_NULL(1, MPI_ERR_ARG, commute) *commute = op->is_commutative(); return MPI_SUCCESS;