X-Git-Url: http://bilbo.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/e1a5484101efbff9c8d982a0c4650f7953ee7e2f..3907e83884bae6278656e9cd2cb7ef92a8f707fb:/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 44de64ec9d..ad08e3c43f 100644 --- a/src/smpi/bindings/smpi_pmpi_type.cpp +++ b/src/smpi/bindings/smpi_pmpi_type.cpp @@ -1,4 +1,4 @@ -/* Copyright (c) 2007-2021. The SimGrid Team. All rights reserved. */ +/* Copyright (c) 2007-2023. 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. */ @@ -114,7 +114,6 @@ int PMPI_Type_contiguous(int count, MPI_Datatype old_type, MPI_Datatype* new_typ } int PMPI_Type_commit(MPI_Datatype* datatype) { - CHECK_NULL(1, MPI_ERR_ARG, datatype) CHECK_MPI_NULL(1, MPI_DATATYPE_NULL, MPI_ERR_TYPE, (*datatype)) (*datatype)->commit(); return MPI_SUCCESS; @@ -124,6 +123,7 @@ int PMPI_Type_vector(int count, int blocklen, int stride, MPI_Datatype old_type, CHECK_COUNT(1, count) CHECK_NEGATIVE(2, MPI_ERR_ARG, blocklen) CHECK_MPI_NULL(4, MPI_DATATYPE_NULL, MPI_ERR_TYPE, old_type) + CHECK_NULL(5, MPI_ERR_ARG, new_type) return simgrid::smpi::Datatype::create_vector(count, blocklen, stride, old_type, new_type); } @@ -131,6 +131,7 @@ int PMPI_Type_hvector(int count, int blocklen, MPI_Aint stride, MPI_Datatype old CHECK_COUNT(1, count) CHECK_NEGATIVE(2, MPI_ERR_ARG, blocklen) CHECK_MPI_NULL(4, MPI_DATATYPE_NULL, MPI_ERR_TYPE, old_type) + CHECK_NULL(5, MPI_ERR_ARG, new_type) return simgrid::smpi::Datatype::create_hvector(count, blocklen, stride, old_type, new_type); } @@ -139,14 +140,13 @@ int PMPI_Type_create_hvector(int count, int blocklen, MPI_Aint stride, MPI_Datat } int PMPI_Type_indexed(int count, const int* blocklens, const int* indices, MPI_Datatype old_type, MPI_Datatype* new_type) { - CHECK_COUNT(1, count) - CHECK_MPI_NULL(4, MPI_DATATYPE_NULL, MPI_ERR_TYPE, old_type) - return simgrid::smpi::Datatype::create_indexed(count, blocklens, indices, old_type, new_type); + return PMPI_Type_create_indexed(count, blocklens, indices, old_type, new_type); } int PMPI_Type_create_indexed(int count, const int* blocklens, const int* indices, MPI_Datatype old_type, MPI_Datatype* new_type) { CHECK_COUNT(1, count) CHECK_MPI_NULL(4, MPI_DATATYPE_NULL, MPI_ERR_TYPE, old_type) + CHECK_NULL(5, MPI_ERR_ARG, new_type) return simgrid::smpi::Datatype::create_indexed(count, blocklens, indices, old_type, new_type); } @@ -155,7 +155,8 @@ int PMPI_Type_create_indexed_block(int count, int blocklength, const int* indice { CHECK_COUNT(1, count) CHECK_MPI_NULL(4, MPI_DATATYPE_NULL, MPI_ERR_TYPE, old_type) - auto* blocklens = static_cast(xbt_malloc(blocklength * count * sizeof(int))); + CHECK_NULL(5, MPI_ERR_ARG, new_type) + auto* blocklens = static_cast(xbt_malloc(sizeof(int) * blocklength * count)); for (int i = 0; i < count; i++) blocklens[i]=blocklength; int retval = simgrid::smpi::Datatype::create_indexed(count, blocklens, indices, old_type, new_type); @@ -168,6 +169,7 @@ int PMPI_Type_hindexed(int count, const int* blocklens, const MPI_Aint* indices, { CHECK_COUNT(1, count) CHECK_MPI_NULL(4, MPI_DATATYPE_NULL, MPI_ERR_TYPE, old_type) + CHECK_NULL(5, MPI_ERR_ARG, new_type) return simgrid::smpi::Datatype::create_hindexed(count, blocklens, indices, old_type, new_type); } @@ -180,7 +182,8 @@ int PMPI_Type_create_hindexed_block(int count, int blocklength, const MPI_Aint* MPI_Datatype* new_type) { CHECK_COUNT(1, count) CHECK_MPI_NULL(4, MPI_DATATYPE_NULL, MPI_ERR_TYPE, old_type) - auto* blocklens = static_cast(xbt_malloc(blocklength * count * sizeof(int))); + CHECK_NULL(5, MPI_ERR_ARG, new_type) + auto* blocklens = static_cast(xbt_malloc(sizeof(int) * blocklength * count)); for (int i = 0; i < count; i++) blocklens[i] = blocklength; int retval = simgrid::smpi::Datatype::create_hindexed(count, blocklens, indices, old_type, new_type); @@ -194,6 +197,7 @@ int PMPI_Type_struct(int count, const int* blocklens, const MPI_Aint* indices, c CHECK_COUNT(1, count) for(int i=0; iget_extent(), newtype); return MPI_SUCCESS; @@ -233,6 +238,7 @@ int PMPI_Type_create_subarray(int ndims, const int* array_of_sizes, int PMPI_Type_create_resized(MPI_Datatype oldtype,MPI_Aint lb, MPI_Aint extent, MPI_Datatype *newtype){ CHECK_MPI_NULL(1, MPI_DATATYPE_NULL, MPI_ERR_TYPE, oldtype) + CHECK_NULL(4, MPI_ERR_ARG, newtype) return simgrid::smpi::Datatype::create_resized(oldtype, lb, extent, newtype); } @@ -277,9 +283,8 @@ int PMPI_Type_set_attr (MPI_Datatype type, int type_keyval, void *attribute_val) return type->attr_put(type_keyval, attribute_val); } -int PMPI_Type_get_contents (MPI_Datatype type, int max_integers, int max_addresses, - int max_datatypes, int* array_of_integers, MPI_Aint* array_of_addresses, - MPI_Datatype *array_of_datatypes) +int PMPI_Type_get_contents(MPI_Datatype type, int max_integers, int max_addresses, int max_datatypes, + int* array_of_integers, MPI_Aint* array_of_addresses, MPI_Datatype* array_of_datatypes) { CHECK_MPI_NULL(1, MPI_DATATYPE_NULL, MPI_ERR_TYPE, type) CHECK_NEGATIVE(2, MPI_ERR_COUNT, max_integers) @@ -295,8 +300,7 @@ int PMPI_Type_get_contents (MPI_Datatype type, int max_integers, int max_address array_of_integers, array_of_addresses, array_of_datatypes); } -int PMPI_Type_get_envelope (MPI_Datatype type, int *num_integers, int *num_addresses, - int *num_datatypes, int *combiner) +int PMPI_Type_get_envelope(MPI_Datatype type, int* num_integers, int* num_addresses, int* num_datatypes, int* combiner) { CHECK_MPI_NULL(1, MPI_DATATYPE_NULL, MPI_ERR_TYPE, type) CHECK_NULL(2, MPI_ERR_ARG, num_integers)