@@ -836,8 +836,14 @@ move_installed_to_front(Pool *pool, Queue *plist)
836836static int
837837pool_buildversioncmp (Pool * pool , Solvable * s1 , Solvable * s2 )
838838{
839- const char * bv1 = solvable_lookup_str (s1 , SOLVABLE_BUILDVERSION );
840- const char * bv2 = solvable_lookup_str (s2 , SOLVABLE_BUILDVERSION );
839+ const char * bv1 , * bv2 ;
840+ unsigned int cnt1 , cnt2 ;
841+ cnt1 = solvable_lookup_count (s1 , SOLVABLE_TRACK_FEATURES );
842+ cnt2 = solvable_lookup_count (s2 , SOLVABLE_TRACK_FEATURES );
843+ if (cnt1 != cnt2 )
844+ return cnt1 > cnt2 ? -1 : 1 ;
845+ bv1 = solvable_lookup_str (s1 , SOLVABLE_BUILDVERSION );
846+ bv2 = solvable_lookup_str (s2 , SOLVABLE_BUILDVERSION );
841847 if (!bv1 && !bv2 )
842848 return 0 ;
843849 return pool_evrcmp_str (pool , bv1 ? bv1 : "" , bv2 ? bv2 : "" , EVRCMP_COMPARE );
@@ -846,14 +852,8 @@ pool_buildversioncmp(Pool *pool, Solvable *s1, Solvable *s2)
846852static int
847853pool_buildflavorcmp (Pool * pool , Solvable * s1 , Solvable * s2 )
848854{
849- const char * f1 , * f2 ;
850- unsigned int cnt1 , cnt2 ;
851- cnt1 = solvable_lookup_count (s1 , SOLVABLE_TRACK_FEATURES );
852- cnt2 = solvable_lookup_count (s2 , SOLVABLE_TRACK_FEATURES );
853- if (cnt1 != cnt2 )
854- return cnt1 > cnt2 ? -1 : 1 ;
855- f1 = solvable_lookup_str (s1 , SOLVABLE_BUILDFLAVOR );
856- f2 = solvable_lookup_str (s2 , SOLVABLE_BUILDFLAVOR );
855+ const char * f1 = solvable_lookup_str (s1 , SOLVABLE_BUILDFLAVOR );
856+ const char * f2 = solvable_lookup_str (s2 , SOLVABLE_BUILDFLAVOR );
857857 if (!f1 && !f2 )
858858 return 0 ;
859859 return pool_evrcmp_str (pool , f1 ? f1 : "" , f2 ? f2 : "" , EVRCMP_COMPARE );
0 commit comments