X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/251e40dfd575845209e8b4191b87064fb68556a9..1195bd43519f612d47fe67f7511dd5d9433ec577:/src/surf/maxmin.c diff --git a/src/surf/maxmin.c b/src/surf/maxmin.c index ff65a88169..3d329156f4 100644 --- a/src/surf/maxmin.c +++ b/src/surf/maxmin.c @@ -719,13 +719,13 @@ void lmm_update_variable_weight(lmm_system_t sys, lmm_variable_t var, xbt_swag_insert_at_head(elem, &(elem->constraint->element_set)); else xbt_swag_insert_at_tail(elem, &(elem->constraint->element_set)); + + if (i == 0) + lmm_update_modified_set(sys, elem->constraint); } if (!weight) var->value = 0.0; - if (var->cnsts_number) - lmm_update_modified_set(sys, var->cnsts[0].constraint); - XBT_OUT(); } @@ -789,10 +789,8 @@ static void lmm_update_modified_set_rec(lmm_system_t sys, lmm_variable_t var = elem->variable; s_lmm_element_t *cnsts = var->cnsts; int i; - if (var->visited == sys->visited_counter) - continue; - var->visited = sys->visited_counter; - for (i = 0; i < var->cnsts_number; i++) { + for (i = 0; var->visited != sys->visited_counter + && i < var->cnsts_number ; i++) { if (cnsts[i].constraint != cnst && !xbt_swag_belongs(cnsts[i].constraint, &sys->modified_constraint_set)) { @@ -800,6 +798,7 @@ static void lmm_update_modified_set_rec(lmm_system_t sys, lmm_update_modified_set_rec(sys, cnsts[i].constraint); } } + var->visited = sys->visited_counter; } }