@@ -1031,16 +1031,17 @@ solver_addpkgrulesforsolvable(Solver *solv, Solvable *s, Map *m)
10311031 }
10321032 }
10331033
1034- if (m && pool -> implicitobsoleteusescolors && ( s -> arch > pool -> lastarch || pool -> id2arch [ s -> arch ] != 1 ) )
1034+ if (m && pool -> implicitobsoleteusescolors && pool_arch2score ( pool , s -> arch ) > 1 )
10351035 {
1036- int a = pool -> id2arch [ s -> arch ] ;
1036+ int pa , a = pool_arch2score ( pool , s -> arch ) ;
10371037 /* check lock-step candidates */
10381038 FOR_PROVIDES (p , pp , s -> name )
10391039 {
10401040 Solvable * ps = pool -> solvables + p ;
10411041 if (s -> name != ps -> name || s -> evr != ps -> evr || MAPTST (m , p ))
10421042 continue ;
1043- if (ps -> arch > pool -> lastarch || pool -> id2arch [ps -> arch ] == 1 || pool -> id2arch [ps -> arch ] >= a )
1043+ pa = pool_arch2score (pool , ps -> arch );
1044+ if (!pa || pa == 1 || pa >= a )
10441045 continue ;
10451046 queue_push (& workq , p );
10461047 }
@@ -1558,8 +1559,7 @@ solver_addinfarchrules(Solver *solv, Map *addedmap)
15581559 first = 0 ;
15591560 if (first )
15601561 break ;
1561- a = ps -> arch ;
1562- a = (a <= pool -> lastarch ) ? pool -> id2arch [a ] : 0 ;
1562+ a = pool_arch2score (pool , ps -> arch );
15631563 if (a != 1 && installed && ps -> repo == installed )
15641564 {
15651565 if (solv -> dupinvolvedmap_all || (solv -> dupinvolvedmap .size && MAPTST (& solv -> dupinvolvedmap , p )))
@@ -1593,8 +1593,7 @@ solver_addinfarchrules(Solver *solv, Map *addedmap)
15931593 continue ;
15941594 if (solv -> dupinvolvedmap_all || (solv -> dupinvolvedmap .size && MAPTST (& solv -> dupinvolvedmap , p )))
15951595 continue ;
1596- a = ps -> arch ;
1597- a = (a <= pool -> lastarch ) ? pool -> id2arch [a ] : 0 ;
1596+ a = pool_arch2score (pool , ps -> arch );
15981597 if (!a )
15991598 {
16001599 queue_pushunique (& allowedarchs , ps -> arch ); /* strange arch, allow */
@@ -1609,8 +1608,7 @@ solver_addinfarchrules(Solver *solv, Map *addedmap)
16091608 Id a2 ;
16101609 if (p2 == p || s2 -> name != s -> name || s2 -> evr != pool -> solvables [p ].evr || s2 -> arch == pool -> solvables [p ].arch )
16111610 continue ;
1612- a2 = s2 -> arch ;
1613- a2 = (a2 <= pool -> lastarch ) ? pool -> id2arch [a2 ] : 0 ;
1611+ a2 = pool_arch2score (pool , s2 -> arch );
16141612 if (a2 && (a2 == 1 || ((a2 ^ bestarch ) & 0xffff0000 ) == 0 ))
16151613 break ;
16161614 }
@@ -1626,8 +1624,7 @@ solver_addinfarchrules(Solver *solv, Map *addedmap)
16261624 ps = pool -> solvables + p ;
16271625 if (ps -> name != s -> name || !MAPTST (addedmap , p ))
16281626 continue ;
1629- a = ps -> arch ;
1630- a = (a <= pool -> lastarch ) ? pool -> id2arch [a ] : 0 ;
1627+ a = pool_arch2score (pool , ps -> arch );
16311628 if (a != 1 && bestarch && ((a ^ bestarch ) & 0xffff0000 ) != 0 )
16321629 {
16331630 if (installed && ps -> repo == installed )
@@ -1641,7 +1638,7 @@ solver_addinfarchrules(Solver *solv, Map *addedmap)
16411638 aa = allowedarchs .elements [j ];
16421639 if (ps -> arch == aa )
16431640 break ;
1644- aa = ( aa <= pool -> lastarch ) ? pool -> id2arch [ aa ] : 0 ;
1641+ aa = pool_arch2score ( pool , aa ) ;
16451642 if (aa && ((a ^ aa ) & 0xffff0000 ) == 0 )
16461643 break ; /* compatible */
16471644 }
@@ -1665,8 +1662,7 @@ solver_addinfarchrules(Solver *solv, Map *addedmap)
16651662 Solvable * s2 = pool -> solvables + p2 ;
16661663 if (p2 == p || s2 -> name != s -> name || s2 -> evr != pool -> solvables [p ].evr || s2 -> arch == pool -> solvables [p ].arch )
16671664 continue ;
1668- a = s2 -> arch ;
1669- a = (a <= pool -> lastarch ) ? pool -> id2arch [a ] : 0 ;
1665+ a = pool_arch2score (pool , s2 -> arch );
16701666 if (a && (a == 1 || ((a ^ bestarch ) & 0xffff000 ) == 0 ))
16711667 {
16721668 queue_push (& lsq , p2 );
0 commit comments