From: Michael Schroeder Date: Wed, 17 Oct 2007 16:30:58 +0000 (+0000) Subject: move solver reset to top of refine_suggestion X-Git-Tag: BASE-SuSE-Code-12_1-Branch~1226 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=47df8932257bd9038afdcbcf11eca634a87e6d80;p=platform%2Fupstream%2Flibsolv.git move solver reset to top of refine_suggestion --- diff --git a/src/solver.c b/src/solver.c index 9178245..a1f557c 100644 --- a/src/solver.c +++ b/src/solver.c @@ -2182,6 +2182,9 @@ refine_suggestion(Solver *solv, Id *problem, Id sug, Queue *refined) QUEUEEMPTY(refined); queuepush(refined, sug); + revert(solv, 1); + reset_solver(solv); + /* re-enable all rules but rule "sug" of the problem */ for (i = 0; problem[i]; i++) { @@ -2196,8 +2199,6 @@ refine_suggestion(Solver *solv, Id *problem, Id sug, Queue *refined) } for (;;) { - revert(solv, 1); /* XXX move to reset_solver? */ - reset_solver(solv); QUEUEEMPTY(&solv->problems); run_solver(solv, 0, 0); if (!solv->problems.count) @@ -2224,8 +2225,6 @@ refine_suggestion(Solver *solv, Id *problem, Id sug, Queue *refined) { /* no solution found, this was an invalid suggestion! */ printf("no solution found!\n"); - for (i = 0; i < refined->count; i++) - reenablerule(solv, solv->rules + refined->elements[i]); refined->count = 0; break; } @@ -2257,6 +2256,8 @@ refine_suggestion(Solver *solv, Id *problem, Id sug, Queue *refined) printrule(solv, r); #endif } + revert(solv, 1); /* XXX move to reset_solver? */ + reset_solver(solv); } /* enable refined rules again */ for (i = 0; i < disabled.count; i++)