From: Michael Schroeder Date: Mon, 6 Oct 2014 15:19:13 +0000 (+0200) Subject: fix bug in reorder_dq_for_jobrules X-Git-Tag: 0.6.6~1 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=73ac7b05d6d215b329620550107422466236a280;p=thirdparty%2Flibsolv.git fix bug in reorder_dq_for_jobrules The next level is actually "level + 1", so by using level we punch zeros in our decisionmap leading to some nasty bugs later on (e.g. when we need to revert). --- diff --git a/src/solver.c b/src/solver.c index 2ba906ff..14fe78d7 100644 --- a/src/solver.c +++ b/src/solver.c @@ -1390,7 +1390,7 @@ reorder_dq_for_jobrules(Solver *solv, int level, Queue *dq) continue; if (solv->decisionmap[p] == 0) { - solv->decisionmap[p] = level; + solv->decisionmap[p] = level + 1; haveone = 1; } } @@ -1414,7 +1414,7 @@ reorder_dq_for_jobrules(Solver *solv, int level, Queue *dq) dq->elements[j++] = dq->elements[i]; queue_truncate(dq, j); FOR_REPO_SOLVABLES(solv->installed, p, s) - if (solv->decisionmap[p] == level) + if (solv->decisionmap[p] == level + 1) solv->decisionmap[p] = 0; }