always keep job/jobflags in selection_filter()
authorMichael Schroeder <mls@suse.de>
Thu, 13 Feb 2014 13:03:25 +0000 (14:03 +0100)
committerMichael Schroeder <mls@suse.de>
Thu, 13 Feb 2014 13:03:25 +0000 (14:03 +0100)
src/selection.c

index badb41f..f0e61ea 100644 (file)
@@ -998,8 +998,11 @@ selection_filter(Pool *pool, Queue *sel1, Queue *sel2)
   if (sel1->count == 2 && (sel1->elements[0] & SOLVER_SELECTMASK) == SOLVER_SOLVABLE_ALL)
     {
       /* XXX: not 100% correct, but very useful */
+      p = sel1->elements[0] & ~(SOLVER_SELECTMASK | SOLVER_SETMASK);   /* job & jobflags */
       queue_free(sel1);
       queue_init_clone(sel1, sel2);
+      for (i = 0; i < sel1->count; i += 2)
+        sel1->elements[i] = (sel1->elements[i] & (SOLVER_SELECTMASK | SOLVER_SETMASK)) | p ;
       return;
     }
   queue_init(&q1);