diff --git a/src/mpi/c/group_free.c b/src/mpi/c/group_free.c index 1fb91a7486..460e2f42da 100644 --- a/src/mpi/c/group_free.c +++ b/src/mpi/c/group_free.c @@ -29,18 +29,12 @@ int MPI_Group_free(MPI_Group *group) return OMPI_ERRHANDLER_INVOKE(MPI_COMM_WORLD, MPI_ERR_GROUP, "MPI_Group_free"); } + } l_group = (ompi_group_t *) *group; - - /* check to see if group may be freed */ - if( false == l_group->grp_ok_to_free ) { - return MPI_ERR_GROUP; - } - OBJ_RELEASE(l_group); *group = MPI_GROUP_NULL; - return MPI_SUCCESS; } diff --git a/src/mpi/c/group_range_excl.c b/src/mpi/c/group_range_excl.c index b97195f938..bfc6187dca 100644 --- a/src/mpi/c/group_range_excl.c +++ b/src/mpi/c/group_range_excl.c @@ -143,10 +143,10 @@ int MPI_Group_range_excl(MPI_Group group, int n_triplets, int ranges[][3], index=0; for (proc = 0; proc < group_pointer->grp_proc_count; proc++) { /* if value == -1, include in the list */ - if (0 < elements_int_list[proc] ) { + if (0 > elements_int_list[proc] ) { new_group_pointer->grp_proc_pointers[index] = group_pointer->grp_proc_pointers[proc]; - index++; + index++; } } /* end of proc loop */ diff --git a/src/mpi/c/group_range_incl.c b/src/mpi/c/group_range_incl.c index ff7469aa47..2c58c45836 100644 --- a/src/mpi/c/group_range_incl.c +++ b/src/mpi/c/group_range_incl.c @@ -137,13 +137,11 @@ int MPI_Group_range_incl(MPI_Group group, int n_triplets, int ranges[][3], } /* fill in group list */ - index=0; for (proc = 0; proc < group_pointer->grp_proc_count; proc++) { /* if value >= 0, include in the list */ if (0 <= elements_int_list[proc] ) { - new_group_pointer->grp_proc_pointers[index] = + new_group_pointer->grp_proc_pointers[elements_int_list[proc]] = group_pointer->grp_proc_pointers[proc]; - index++; } } /* end of proc loop */ diff --git a/src/mpi/c/group_translate_ranks.c b/src/mpi/c/group_translate_ranks.c index 50cc9c9cf1..c9a7957de8 100644 --- a/src/mpi/c/group_translate_ranks.c +++ b/src/mpi/c/group_translate_ranks.c @@ -35,8 +35,7 @@ int MPI_Group_translate_ranks(MPI_Group group1, int n_ranks, int *ranks1, return OMPI_ERRHANDLER_INVOKE(MPI_COMM_WORLD, MPI_ERR_GROUP, "MPI_Group_translate_ranks"); } - if( (n_ranks > group1_pointer->grp_proc_count) || - ( 0 >= n_ranks ) ){ + if( 0 >= n_ranks ){ return OMPI_ERRHANDLER_INVOKE(MPI_COMM_WORLD, MPI_ERR_GROUP, "MPI_Group_translate_ranks - II "); } diff --git a/src/mpi/c/group_union.c b/src/mpi/c/group_union.c index e1d46b9464..dc5c21cef9 100644 --- a/src/mpi/c/group_union.c +++ b/src/mpi/c/group_union.c @@ -54,7 +54,7 @@ int MPI_Group_union(MPI_Group group1, MPI_Group group2, MPI_Group *new_group) found_in_group = 0; for (proc1 = 0; proc1 < group1_pointer->grp_proc_count; proc1++) { proc1_pointer = group1_pointer->grp_proc_pointers[proc1]; - if (proc2_pointer == proc2_pointer) { + if (proc1_pointer == proc2_pointer) { /* proc2 is in group1 - don't double count */ found_in_group = 1; break; @@ -92,7 +92,7 @@ int MPI_Group_union(MPI_Group group1, MPI_Group group2, MPI_Group *new_group) found_in_group = 0; for (proc1 = 0; proc1 < group1_pointer->grp_proc_count; proc1++) { proc1_pointer = group1_pointer->grp_proc_pointers[proc1]; - if (proc2_pointer == proc2_pointer) { + if (proc1_pointer == proc2_pointer) { /* proc2 is in group1 - don't double count */ found_in_group = 1; break; @@ -112,7 +112,7 @@ int MPI_Group_union(MPI_Group group1, MPI_Group group2, MPI_Group *new_group) /* find my rank */ my_group_rank = group1_pointer->grp_my_rank; - if (MPI_PROC_NULL == my_group_rank) { + if (MPI_UNDEFINED == my_group_rank) { my_group_rank = group2_pointer->grp_my_rank; my_proc_pointer = group2_pointer->grp_proc_pointers[my_group_rank]; } else {