]> git.ipfire.org Git - thirdparty/libsolv.git/commitdiff
Move feature minimization to pool_buildversioncmp() 374/head
authorDavid Brochart <david.brochart@gmail.com>
Fri, 17 Apr 2020 13:48:09 +0000 (15:48 +0200)
committerDavid Brochart <david.brochart@gmail.com>
Fri, 17 Apr 2020 13:48:09 +0000 (15:48 +0200)
src/policy.c

index 020571c6cf2c12b23f3abdf7b3c68ecb646b66f5..fe8d55e3ce430896f3bc90b2fe0dc21c9681b68b 100644 (file)
@@ -836,8 +836,14 @@ move_installed_to_front(Pool *pool, Queue *plist)
 static int
 pool_buildversioncmp(Pool *pool, Solvable *s1, Solvable *s2)
 {
-  const char *bv1 = solvable_lookup_str(s1, SOLVABLE_BUILDVERSION);
-  const char *bv2 = solvable_lookup_str(s2, SOLVABLE_BUILDVERSION);
+  const char *bv1, *bv2;
+  unsigned int cnt1, cnt2;
+  cnt1 = solvable_lookup_count(s1, SOLVABLE_TRACK_FEATURES);
+  cnt2 = solvable_lookup_count(s2, SOLVABLE_TRACK_FEATURES);
+  if (cnt1 != cnt2)
+    return cnt1 > cnt2 ? -1 : 1;
+  bv1 = solvable_lookup_str(s1, SOLVABLE_BUILDVERSION);
+  bv2 = solvable_lookup_str(s2, SOLVABLE_BUILDVERSION);
   if (!bv1 && !bv2)
     return 0;
   return pool_evrcmp_str(pool, bv1 ? bv1 : "" , bv2 ? bv2 : "", EVRCMP_COMPARE);
@@ -846,14 +852,8 @@ pool_buildversioncmp(Pool *pool, Solvable *s1, Solvable *s2)
 static int
 pool_buildflavorcmp(Pool *pool, Solvable *s1, Solvable *s2)
 {
-  const char *f1, *f2;
-  unsigned int cnt1, cnt2;
-  cnt1 = solvable_lookup_count(s1, SOLVABLE_TRACK_FEATURES);
-  cnt2 = solvable_lookup_count(s2, SOLVABLE_TRACK_FEATURES);
-  if (cnt1 != cnt2)
-    return cnt1 > cnt2 ? -1 : 1;
-  f1 = solvable_lookup_str(s1, SOLVABLE_BUILDFLAVOR);
-  f2 = solvable_lookup_str(s2, SOLVABLE_BUILDFLAVOR);
+  const char *f1 = solvable_lookup_str(s1, SOLVABLE_BUILDFLAVOR);
+  const char *f2 = solvable_lookup_str(s2, SOLVABLE_BUILDFLAVOR);
   if (!f1 && !f2)
     return 0;
   return pool_evrcmp_str(pool, f1 ? f1 : "" , f2 ? f2 : "", EVRCMP_COMPARE);