From 8d067e4979cf07df41563994973b58dbcddbfc99 Mon Sep 17 00:00:00 2001 From: Augustin Degomme Date: Wed, 6 Nov 2013 15:42:17 +0100 Subject: [PATCH] potential fixes (cherry picked from commit 7e5c2f3a409fb782e912f80867b8573a54e0dc09) --- src/smpi/colls/scatter-ompi.c | 6 ++++-- src/smpi/smpi_base.c | 3 ++- 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/src/smpi/colls/scatter-ompi.c b/src/smpi/colls/scatter-ompi.c index c65b6f9511..9d30811ccb 100644 --- a/src/smpi/colls/scatter-ompi.c +++ b/src/smpi/colls/scatter-ompi.c @@ -145,13 +145,15 @@ smpi_coll_tuned_scatter_ompi_binomial(void *sbuf, int scount, total_send += mycount; } - if (NULL != tempbuf) - free(tempbuf); + } else { /* recv from parent on leaf nodes */ smpi_mpi_recv(ptmp, rcount, rdtype, bmtree->tree_prev, COLL_TAG_SCATTER, comm, &status); } + + if (NULL != tempbuf) + free(tempbuf); //!FIXME : store the tree, as done in ompi, instead of calculating it each time ? xbt_free(bmtree); diff --git a/src/smpi/smpi_base.c b/src/smpi/smpi_base.c index 2632bac808..a6a3c57dc5 100644 --- a/src/smpi/smpi_base.c +++ b/src/smpi/smpi_base.c @@ -86,13 +86,13 @@ static xbt_dynar_t parse_factor(const char *smpi_coef_string) char *value = NULL; unsigned int iter = 0; s_smpi_factor_t fact; + fact.nb_values=0; int i=0; xbt_dynar_t smpi_factor, radical_elements, radical_elements2 = NULL; smpi_factor = xbt_dynar_new(sizeof(s_smpi_factor_t), NULL); radical_elements = xbt_str_split(smpi_coef_string, ";"); xbt_dynar_foreach(radical_elements, iter, value) { - fact.nb_values=0; radical_elements2 = xbt_str_split(value, ":"); if (xbt_dynar_length(radical_elements2) <2 || xbt_dynar_length(radical_elements2) > 5) xbt_die("Malformed radical for smpi factor!"); @@ -414,6 +414,7 @@ void smpi_mpi_start(MPI_Request request) void smpi_mpi_startall(int count, MPI_Request * requests) { int i; + if(requests==NULL) return; for(i = 0; i < count; i++) { smpi_mpi_start(requests[i]); -- 2.20.1