X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/8d067e4979cf07df41563994973b58dbcddbfc99..669819cc2941fc50b392676c61c4d54864502e45:/src/smpi/smpi_base.c diff --git a/src/smpi/smpi_base.c b/src/smpi/smpi_base.c index a6a3c57dc5..952db704fa 100644 --- a/src/smpi/smpi_base.c +++ b/src/smpi/smpi_base.c @@ -77,7 +77,8 @@ xbt_dynar_t smpi_ois_values = NULL; static int factor_cmp(const void *pa, const void *pb) { - return (((s_smpi_factor_t*)pa)->factor > ((s_smpi_factor_t*)pb)->factor); + return (((s_smpi_factor_t*)pa)->factor > ((s_smpi_factor_t*)pb)->factor) ? 1 : + (((s_smpi_factor_t*)pa)->factor < ((s_smpi_factor_t*)pb)->factor) ? -1 : 0; } @@ -93,6 +94,7 @@ static xbt_dynar_t parse_factor(const char *smpi_coef_string) 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) { + memset(&fact, 0, sizeof(s_smpi_factor_t)); 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!");