X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/15935515f1a4c577e1fb0aeec4bb0f3cc4f3dcab..2d37e348a09783cda723c7019640ee69de168324:/src/smpi/bindings/smpi_pmpi_type.cpp diff --git a/src/smpi/bindings/smpi_pmpi_type.cpp b/src/smpi/bindings/smpi_pmpi_type.cpp index 7687c4031c..344b038da6 100644 --- a/src/smpi/bindings/smpi_pmpi_type.cpp +++ b/src/smpi/bindings/smpi_pmpi_type.cpp @@ -1,4 +1,4 @@ -/* Copyright (c) 2007-2017. The SimGrid Team. All rights reserved. */ +/* Copyright (c) 2007-2019. 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. */ @@ -9,7 +9,6 @@ XBT_LOG_EXTERNAL_DEFAULT_CATEGORY(smpi_pmpi); /* PMPI User level calls */ -extern "C" { // Obviously, the C MPI interface should use the C linkage int PMPI_Type_free(MPI_Datatype * datatype) { @@ -263,14 +262,7 @@ int PMPI_Type_create_resized(MPI_Datatype oldtype,MPI_Aint lb, MPI_Aint extent, if (oldtype == MPI_DATATYPE_NULL) { return MPI_ERR_TYPE; } - int blocks[3] = {1, 1, 1}; - MPI_Aint disps[3] = {lb, 0, lb + extent}; - MPI_Datatype types[3] = {MPI_LB, oldtype, MPI_UB}; - - *newtype = new simgrid::smpi::Type_Struct(oldtype->size(), lb, lb + extent, DT_FLAG_DERIVED, 3, blocks, disps, types); - - (*newtype)->addflag(~DT_FLAG_COMMITED); - return MPI_SUCCESS; + return simgrid::smpi::Datatype::create_resized(oldtype, lb, extent, newtype); } @@ -333,8 +325,8 @@ int PMPI_Type_delete_attr (MPI_Datatype type, int type_keyval) int PMPI_Type_create_keyval(MPI_Type_copy_attr_function* copy_fn, MPI_Type_delete_attr_function* delete_fn, int* keyval, void* extra_state) { - smpi_copy_fn _copy_fn={nullptr,copy_fn,nullptr}; - smpi_delete_fn _delete_fn={nullptr,delete_fn,nullptr}; + smpi_copy_fn _copy_fn={nullptr,copy_fn,nullptr,nullptr,nullptr,nullptr}; + smpi_delete_fn _delete_fn={nullptr,delete_fn,nullptr,nullptr,nullptr,nullptr}; return simgrid::smpi::Keyval::keyval_create(_copy_fn, _delete_fn, keyval, extra_state); } @@ -374,5 +366,3 @@ int PMPI_Pack_size(int incount, MPI_Datatype datatype, MPI_Comm comm, int* size) return MPI_SUCCESS; } - -}