From: Stefan Schubert Date: Fri, 9 Nov 2007 16:03:43 +0000 (+0000) Subject: doc added X-Git-Tag: BASE-SuSE-Code-12_1-Branch~308^2~835 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=7417bbda44d43ee90d38619332020ca3e5438e36;p=thirdparty%2Flibsolv.git doc added --- diff --git a/src/solver.c b/src/solver.c index c0429a12..481e021e 100644 --- a/src/solver.c +++ b/src/solver.c @@ -1819,6 +1819,12 @@ watch2onhighest(Solver *solv, Rule *r) /* * setpropagatelearn + * + * add free decision to decision q, increase level + * propagate decision, return if no conflict + * in conflict case, analyze conflict rule, add resulting + * rule to learnt rule set, make decision from learnt + * rule (always unit) and re-propagate */ static int @@ -1846,7 +1852,7 @@ setpropagatelearn(Solver *solv, int level, Id decision, int disablerules) if (level == 1) return analyze_unsolvable(solv, r, disablerules); printf("conflict with rule #%d\n", (int)(r - solv->rules)); - l = analyze(solv, level, r, &p, &d, &why); + l = analyze(solv, level, r, &p, &d, &why); /* learnt rule in p and d */ if (l >= level || l <= 0) abort(); printf("reverting decisions (level %d -> %d)\n", level, l); @@ -2069,7 +2075,7 @@ run_solver(Solver *solv, int disablerules, int doweak) queue_push(&dq, p); } if (p) - continue; /* rule is already true */ + continue; /* update package already installed */ } if (!dq.count && solv->decisionmap[i] != 0) continue;