- fix removedisabledconflicts so that it can cope with dropped orphans
authorMichael Schroeder <mls@suse.de>
Fri, 16 Oct 2009 12:31:30 +0000 (14:31 +0200)
committerMichael Schroeder <mls@suse.de>
Fri, 16 Oct 2009 12:31:30 +0000 (14:31 +0200)
src/solver.c

index 34f0b4c..ded4b33 100644 (file)
@@ -2084,10 +2084,15 @@ removedisabledconflicts(Solver *solv, Queue *removed)
     {
       p = solv->decisionq.elements[i];
       if (p > 0)
-       continue;
-      /* a conflict. we never do conflicts on free decisions, so there
-       * must have been an unit rule */
+       continue;       /* conflicts only, please */
       why = solv->decisionq_why.elements[i];
+      if (why == 0)
+       {
+         /* no rule involved, must be a orphan package drop */
+         continue;
+       }
+      /* we never do conflicts on free decisions, so there
+       * must have been an unit rule */
       assert(why > 0);
       r = solv->rules + why;
       if (r->d < 0 && decisionmap[-p])