From: alegrand Date: Wed, 19 Jan 2005 18:15:13 +0000 (+0000) Subject: Bugfix... I had forgotten to reorder elements when updating a variable weight (and... X-Git-Tag: v3.3~4588 X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/commitdiff_plain/e191510f1cefbd3858e94de3c820f3e538642844 Bugfix... I had forgotten to reorder elements when updating a variable weight (and the order is heavilly used later to break loops). git-svn-id: svn+ssh://scm.gforge.inria.fr/svn/simgrid/simgrid/trunk@762 48e7efb5-ca39-0410-a469-dd3cf9ba447f --- diff --git a/src/surf/maxmin.c b/src/surf/maxmin.c index a0315867b3..44faf0d1e7 100644 --- a/src/surf/maxmin.c +++ b/src/surf/maxmin.c @@ -355,13 +355,22 @@ void lmm_update_variable_bound(lmm_system_t sys, lmm_variable_t var, void lmm_update_variable_weight(lmm_system_t sys, lmm_variable_t var, double weight) { + int i ; + lmm_element_t elem; + sys->modified = 1; var->weight = weight; xbt_swag_remove(var,&(sys->variable_set)); if(weight) xbt_swag_insert_at_head(var,&(sys->variable_set)); else xbt_swag_insert_at_tail(var,&(sys->variable_set)); -} + for (i = 0; i < var->cnsts_number; i++) { + elem = &var->cnsts[i]; + xbt_swag_remove(elem, &(elem->constraint->element_set)); + if(weight) xbt_swag_insert_at_head(elem, &(elem->constraint->element_set)); + else xbt_swag_insert_at_tail(elem, &(elem->constraint->element_set)); + } +} double lmm_get_variable_weight(lmm_variable_t var)