Remove redundant version sorting in _expand_new_virtuals() since the
authorZac Medico <zmedico@gentoo.org>
Wed, 16 Apr 2008 22:31:23 +0000 (22:31 -0000)
committerZac Medico <zmedico@gentoo.org>
Wed, 16 Apr 2008 22:31:23 +0000 (22:31 -0000)
dbapi match results are already sorted. (trunk r9920)

svn path=/main/branches/2.1.2/; revision=9921

pym/portage.py

index aa8aa946f7e2bb519da7784bc1f0bf176f78fb63..2ded6dce1d901c765e63699b0af6faa244f4f00f 100644 (file)
@@ -5306,8 +5306,6 @@ def _expand_new_virtuals(mysplit, edebug, mydbapi, mysettings, myroot="/",
        # According to GLEP 37, RDEPEND is the only dependency type that is valid
        # for new-style virtuals.  Repoman should enforce this.
        dep_keys = ["RDEPEND", "DEPEND", "PDEPEND"]
-       def compare_pkgs(a, b):
-               return pkgcmp(b[1], a[1])
        portdb = trees[myroot]["porttree"].dbapi
        if kwargs["use_binaries"]:
                portdb = trees[myroot]["bintree"].dbapi
@@ -5333,19 +5331,14 @@ def _expand_new_virtuals(mysplit, edebug, mydbapi, mysettings, myroot="/",
                match_atom = x
                if isblocker:
                        match_atom = x[1:]
-               pkgs = {}
-               for cpv in portdb.match(match_atom):
+               pkgs = []
+               matches = portdb.match(match_atom)
+               # Use descending order to prefer higher versions.
+               matches.reverse()
+               for cpv in matches:
                        # only use new-style matches
                        if cpv.startswith("virtual/"):
-                               pkgs[cpv] = (cpv, catpkgsplit(cpv)[1:], portdb)
-               if kwargs["use_binaries"] and "vartree" in trees[myroot]:
-                       vardb = trees[myroot]["vartree"].dbapi
-                       for cpv in vardb.match(match_atom):
-                               # only use new-style matches
-                               if cpv.startswith("virtual/"):
-                                       if cpv in pkgs:
-                                               continue
-                                       pkgs[cpv] = (cpv, catpkgsplit(cpv)[1:], vardb)
+                               pkgs.append((cpv, catpkgsplit(cpv)[1:], portdb))
                if not (pkgs or mychoices):
                        # This one couldn't be expanded as a new-style virtual.  Old-style
                        # virtuals have already been expanded by dep_virtual, so this one
@@ -5357,8 +5350,6 @@ def _expand_new_virtuals(mysplit, edebug, mydbapi, mysettings, myroot="/",
                if not pkgs and len(mychoices) == 1:
                        newsplit.append(x.replace(mykey, mychoices[0]))
                        continue
-               pkgs = pkgs.values()
-               pkgs.sort(compare_pkgs) # Prefer higher versions.
                if isblocker:
                        a = []
                else: