From 2392b5157f8d7fb6cf9fce3244730484d694586a Mon Sep 17 00:00:00 2001 From: Arnaud Giersch Date: Fri, 9 Dec 2011 16:45:14 +0100 Subject: [PATCH] Fix the order of contraints changed by previous commits: 7591b36 Reduce the number of calls to lmm_update_modified_set. c44aefe In lmm_update_modified_set, don't visit variables twice. --- src/surf/maxmin.c | 15 +++++++-------- 1 file changed, 7 insertions(+), 8 deletions(-) diff --git a/src/surf/maxmin.c b/src/surf/maxmin.c index ff65a88169..b80c47c53e 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,17 +789,16 @@ 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++) { - if (cnsts[i].constraint != cnst + 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)) { xbt_swag_insert(cnsts[i].constraint, &sys->modified_constraint_set); lmm_update_modified_set_rec(sys, cnsts[i].constraint); } } + var->visited = sys->visited_counter; } } -- 2.20.1