summaryrefslogtreecommitdiff
path: root/src/solver.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/solver.c')
-rw-r--r--src/solver.c4
1 files changed, 4 insertions, 0 deletions
diff --git a/src/solver.c b/src/solver.c
index 13dd8c6..7327b71 100644
--- a/src/solver.c
+++ b/src/solver.c
@@ -51,6 +51,7 @@ void apk_solver_set_name_flags(struct apk_name *name,
{
struct apk_provider *p;
+ name->solver_flags_set = 1;
foreach_array_item(p, name->providers) {
struct apk_package *pkg = p->pkg;
dbg_printf("marking '" PKG_VER_FMT "' = 0x%04x / 0x%04x\n",
@@ -1031,6 +1032,9 @@ static int compare_name_dequeue(const struct apk_name *a, const struct apk_name
{
int r;
+ r = !!(a->solver_flags_set) - !!(b->solver_flags_set);
+ if (r) return -r;
+
r = (int)a->priority - (int)b->priority;
if (r) return r;